Шифр VMPC.
Из википедии:
Цитата:
Основа шифра - генератор псевдослучайных чисел, базой которого является односторонняя необратимая функция VMPC (англ. Variably Modified Permutation Composition):
for x from 0 do n-1: g(x) = VMPC(f(x)) = f(f(f(x))+1).
Ключевое расписание
c : Длина ключа в байтах (16 <= c <=64)
K : Ключ
z : Длина вектора инициализации в байтах (16 <= z <=64)
V : Вектор инициализации
m : 16-разрядная переменная
s : 8-разрядная глобальная переменная
1. s = 0
2. for i from 0 to 255: P[i]=i
3. for m from 0 to 767: выполняем пп. 4-6:
4. n = m and 255
5. s = P[ (s + P[n] + K[m mod c]) and 255 ]
6. Temp = P[n]
P[n] = P[s]
P[s] = Temp
7. for m from 0 to 767: выполняем пп. 8-10:
8. n = m and 255
9. s = P[ (s + P[n] + V[m mod z]) and 255 ]
10. Temp = P[n]
P[n] = P[s]
P[s] = Temp
Зашифрование и расшифрование
Для генерации Len байт выходного ключевого потока выполняем следующие операции:
1. n = 0
2. Повторяем пп. 3-6 Len раз:
3. s = P[ (s + P[n]) and 255 ]
4. Output = P[ (P[P[s]]+1) and 255 ]
5. Temp = P[n]
P[n] = P[s]
P[s] = Temp
6. n = (n + 1) and 255
Кто может объяснить а как это будет на Delphi по-человечьи?
Спасибо, если кто обратит внимание.
http://fotki.yandex.ru/users/kanpu32...166556/?page=0
Так выглядит подобный алгоритм.