История изменений
Исправление 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])
В результате сообщение у вас вырастает на размер вектора инициализации для первого блока, остальные векторы вычисляются на основе знания шифртекста и расшифрованного текста и в передаче не нуждаются