Курсовая работа: Защита информации от несанкционированного доступа
N.v32[0]:=N.v32[1];
N.v32[1]:=s;
end;
procedure GOST_G_coding(var T: pointer; S:word64; Size:word);
var
i:integer;
begin
SEcoding64bits(S);
for i:=1 to (Size div 8) do
begin
S.v32[0]:=(S.v32[0]+C1) mod $100000000;
S.v32[1]:=((S.v32[1]+C2-1) mod ($ffffffff)) +1;
word64(Pointer(LongWord(T)+LongWord((i-1)*8))^).v32[0]:=
word64(Pointer(LongWord(T)+LongWord((i-1)*8))^).v32[0] xor S.v32[0];
word64(Pointer(LongWord(T)+LongWord((i-1)*8))^).v32[1]:=
word64(Pointer(LongWord(T)+LongWord((i-1)*8))^).v32[1] xor S.v32[1];
end;
end;
function coding_GOST(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
var
i: integer;
s: word64;
begin
s.v32[0]:=0; s.v32[1]:=0;
for i:=0 to 7 do
begin
Key[i]:=(BYTE(Param.Key[i*4+3]) shr 24) or (BYTE(Param.Key[i*4+2]) shr 16) or
(BYTE(Param.Key[i*4+1]) shr 8) or (BYTE(Param.Key[i*4]));
s.v32[i mod 2]:=s.v32[i mod 2]+Key[i];