LINUX.ORG.RU

История изменений

Исправление Nastishka, (текущая версия) :

1. Берете некоторое значение - синхропосылку, вектор инициализации и т.п. (например размером в 8-16 байт) - т.н.IV[0]

2. зашифровывате его асимметричным шифром, получаете 512 байт гаммы (G[0] = encrypt(IV[0], key))

3. Берете первые 512 байт из сообщения (T[0])

4. Формируете исходящее сообщение формате <синхропосылка>, <сообщение XOR гамма>: IV[0], (T[0] XOR G[0])

4. Если сообщение более 512 байт, то расчитываете новые векторы инициалиазции IV[N] например по принципу IV[N] = sha256(T[N-1]) XOR sha256(G[N-1])

В результате сообщение у вас вырастает на размер вектора инициализации для первого блока, остальные векторы вычисляются на основе знания шифртекста и расшифрованного текста и в передаче не нуждаются

Исходная версия Nastishka, :

1. Берете некоторое значение - синхропосылку, вектор инициализации и т.п. (например размером в 8-16 байт) - т.н.IV[0]

2. зашифровывате его асимметричным шифром, получаете 512 байт гаммы (G[0])

3. Берете первые 512 байт из сообщения (T[0])

4. Формируете исходящее сообщение формате <синхропосылка>, <сообщение XOR гамма>: IV[0], (T[0] XOR G[0])

4. Если сообщение более 512 байт, то расчитываете новые векторы инициалиазции IV[N] например по принципу IV[N] = sha256(T[N-1]) XOR sha256(G[N-1])

В результате сообщение у вас вырастает на размер вектора инициализации для первого блока, остальные векторы вычисляются на основе знания шифртекста и расшифрованного текста и в передаче не нуждаются