|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : OLS 2:5020/400 21 Dec 2001 10:27:50 To : Andrei Romazanov Subject : Re: shifroval'ni algoritm --------------------------------------------------------------------------------
> ne podskazhet kto-nibud' shifroval'ni algoritm, kotori prosto
> implementirovalsja v C i v Delphi. Objazatel'noje uslovie, kotoroje
> zatrudnjaet zadachu: na vihode dolzhna bit' chisto cifrovaja
> posledovatel'nost.
>
Proshe vsego realizuetsa algorithm TEA
-----------------------
type TTEABlock=array[0..1] of longword;
TTEAKey=array[0..3] of longword;
const TEADelta=$9E3779B9;
procedure EnTEARound(var b:TTEABlock; const k:TTEAKey);
var sum,round:longword;
begin
for round:=0 to 31 do
begin
sum:=sum+TEAdelta;
b[0]:=b[0]+ (((b[1] shl 4)+k[0]) xor (b[1]+sum) xor ((b[1] shr
5)+k[1]));
b[1]:=b[1]+ (((b[0] shl 4)+k[2]) xor (b[0]+sum) xor ((b[0] shr
5)+k[3]));
end;
end;
procedure DeTEARound(var b:TTEABlock; const k:TTEAKey);
var sum,round:longword;
begin
sum:=TEAdelta shl 5;
for round:=0 to 31 do
begin
b[1]:=b[1]- (((b[0] shl 4)+k[2]) xor (b[0]+sum) xor ((b[0] shr
5)+k[3]));
b[0]:=b[0]- (((b[1] shl 4)+k[0]) xor (b[1]+sum) xor ((b[1] shr
5)+k[1]));
sum:=sum-TEAdelta;
end;
end;
-----------------------
- eto shifrovanie odnogo bloka
- mogu brosit modul shifrovaniya stroki
-----------------------
Posle etogo zashifrovannyj text codiruetsya transportnym kodekom :
libo 1) kak objasneno vyshe - base64
libo 2) kazhdyi byte kodirovat hex-kodom (2 simvola)
Pered deshifrovaniem - obratnoe dekodirovanie
OLS
--- ifmail v.2.15dev5
* Origin: Golden Telecom (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/8990ea2091df.html, оценка из 5, голосов 10
|