Здравствуйте! В ГОСТе 34.11 на этапе генерации ключей есть такой шаг: нужно вычислить преобразование Р(Х). Даётся его краткое описание (см. прикрепленный файл, с.7). Я не совсем понимаю, что эта за функция фи, и как она вычисляется? По приведенному описанию могу предположить, что надо вычислить значение фи=8*i+k, в циклах: for i=0..3 for k=1..8 . . . И вообще что такое фи в результате? Индекс слова, которым нужно заменить текущее слово? Подскажите, пожалуйста, кто разобрался. И, если можно, приведите псевдокод программы для вычисления этого преобразования... Буду очень благодарна.
сдается, это простая перестановка байт в 32-байтном массиве. при том раскладе что у вас получается просто меняется последовательность "справа-налево", поэтому скорее всего должно быть for k=1 to 8 for i=0 to 3 вообще алгоритм какой-то сильно засекреченный, то его продают где-то, то ссылки удалить наровят... одним словом - нашто он вам сдался? Возьмите SHA что-ли.
Да, я проверила, действительно, так и получается. Спасибо. А насчет того, на что он мне сдался, так у меня лично никакого интереса он не вызывает . Я человек маленький, что начальник сказал, то и делаю.
Нашел ссылку на описание ГОСТ 34.10 и 34.11(но на английском): http://www.gemplus.ru/smart/rd/publications/pdf/MNP96gos.pdf
Black_mirror Наши Алгоритмы шифрования и установки ЭЦП признаны на западе и их щас можно качнуть в виде RFCnnn