Помогите опознать алгоритм шифрования
От: Goldy  
Дата: 05.01.08 09:27
Оценка:
Добрый день!

Данный алгоритм представлен следующей схемой:
На вход подается 128 байтное число, для расшифровки используются 2 числа одно
128 байт, другое 4 байта = 0x00010001,при этом проверяется чтобы входящее число
было меньше 128 байтового числа используемого для расшифровки.
Все операции проводятся с большими числами.
Определение входных параметров :
Crypt — 128 байт шифра
Key1 — 128 байт
Key2 — 4 байта = 0x00010001

Шаг 1: Определяется количество циклов Count, и преобразуется Key2 по схеме
Key2=0x00010001
Count=0;
while ((Key2>>30) & 3 ==0)
{
Count=Count+2;
Key2=Key2<<2;
}
Шаг 2: One=1 /* Большое число */
for(i=0;i<Count;i=i+2)
{
Tmp=BigMul(One,One) /* Результат произведение One*One */
One=BigMod(Tmp,Key1) /* Результат остаток от деления Tmp на Key1 */
Tmp=BigMul(One,One)
One=BigMod(Tmp,Key1)
if (Key2>>30)&3!=0
{
Tmp=BigMul(Crypt,One)
One=BigMod(Tmp,Key1)
}
Key2=Key2<<2;
}
Результат расшифровки в переменной One
Вопрос:
Как можно зашифровать изменненое значение One обратно в 128 байтную последовательность.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.