Показать сообщение отдельно
  #1  
Старый 17.06.2010, 07:19
KanPu3 KanPu3 вне форума
Прохожий
 
Регистрация: 17.06.2010
Сообщения: 2
Репутация: 10
По умолчанию Шифрование. Очень нужна помощь!

Шифр 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
Так выглядит подобный алгоритм.
Ответить с цитированием