Курсовая работа: Защита информации от несанкционированного доступа
end;
procedure K1DeCoding64bits(A: word64; var R: word64; K1:word64);
begin
asm
mov eax,DWORD[K1]
xor DWORD[A],eax
mov eax,DWORD[K1+4]
xor DWORD[A+4],eax
end;
convert(A,LShTable,R);
end;
function Coding_K1(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
var
i,j,l:integer;
a,r: ^word64;
k: word64;
begin
for i:=0 to 7 do
k.v8[i]:=BYTE(Param.Key[i]);
convert(K,LshTable,K);
l:=Size div 8;
for i:=1 to Param.WayCount do
begin
for j:=0 to l-1 do
begin
a:=Pointer(LongWord(Buf)+j*8);
r:=a;
K1Coding64bits(A^,R^,K);
end;