Крипто-форум crprogram.16mb.com

Програмування на Object Pascal, Lazarus, криптографія, криптоаналіз, шифри, вихідні коди, вирішення задач, приклади програм

Часовий пояс: UTC десь + 2 години




Розпочати нову тему Відповісти  [ 5 повідомлень ] 
Автор Повідомлення
 Заголовок повідомлення: Генератор псевдовипадкових чисел (ГПВЧ) на основі SRC4
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 282
Хочу розмістити тут генератор псевдовипадкових чисел на основі шифру SRC4.

Таблиці, змінні:
Код:
const
  HexValues='0123456789ABCDEF';
  sbox: array[0..255] of byte = (
  $3D, $08, $82, $77, $CE, $51, $2E, $6E, $A2, $8F, $C8, $10, $3E, $7E, $E7, $33,
$7C, $48, $1E, $93, $EB, $C0, $A9, $A1, $9F, $3C, $A6, $AA, $0F, $40, $4A, $96,
$46, $30, $69, $1D, $DC, $1B, $CF, $FC, $0B, $57, $52, $01, $16, $80, $C1, $E3,
$BA, $B2, $DA, $F7, $C2, $3F, $4D, $3A, $09, $76, $6C, $D7, $B6, $91, $FB, $C5,
$BD, $B7, $15, $00, $36, $FE, $A3, $44, $53, $07, $19, $1F, $D9, $74, $22, $5C,
$E8, $90, $B9, $ED, $BE, $F6, $A4, $F8, $9B, $98, $CB, $AD, $6B, $EC, $87, $EF,
$2D, $65, $2A, $7F, $39, $41, $F5, $AF, $E1, $81, $61, $28, $9E, $62, $E6, $D5,
$32, $1A, $4C, $7B, $AB, $E0, $C9, $92, $35, $9C, $B5, $94, $BC, $72, $26, $B4,
$F4, $66, $8C, $B3, $FD, $02, $64, $AE, $DF, $D3, $68, $06, $8E, $B1, $CA, $11,
$D0, $63, $AC, $50, $6D, $29, $18, $03, $60, $0D, $78, $D4, $EE, $20, $B0, $B8,
$7A, $42, $4F, $1C, $2F, $5A, $24, $55, $95, $3B, $31, $59, $E4, $5E, $73, $05,
$DB, $43, $C3, $A0, $F0, $8A, $F1, $70, $EA, $2C, $6F, $A5, $12, $37, $A8, $C6,
$38, $FA, $88, $8D, $DE, $13, $86, $C4, $0E, $9A, $C7, $F3, $83, $45, $BB, $D8,
$23, $99, $84, $56, $8B, $4E, $0A, $A7, $34, $9D, $2B, $54, $47, $04, $27, $58,
$17, $5D, $85, $D1, $0C, $49, $D6, $75, $5F, $E5, $F2, $89, $6A, $7D, $67, $25,
$CD, $71, $D2, $5B, $CC, $FF, $DD, $E2, $21, $97, $4B, $BF, $79, $F9, $14, $E9
);


var
  Form1: TForm1;
  par,par2:string;


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Генератор псевдовипадкових чисел (ГПВЧ) на основі SRC4
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 282
Процедура
Код:
function randomSRC4(const n:integer):string;
var
i,j,m,g,h,z,np,np2,v,dd:integer;
sa,VI:string;
t,K:byte;
pa,pa2:array[0..127]of byte;
W:array[0..255]of byte;
C:array of byte;

begin

///////////////////////////////////////////
for i:=0 to 127 do
begin
pa[i]:=i;
pa2[i]:=255-i;
end;

np:=length(par);
if (np>127)then np:=127;
for i:=1 to np do
  pa[i-1]:=ord(par[i]);

np2:=length(par2);
if (np2>127)then np2:=127;
for i:=1 to np2 do
  pa2[i-1]:=ord(par2[i]);

SetLength(C,n+1);


for i:=0 to 255 do
W[i]:=Sbox[i];
///////////////////////////////////////////

j:= pa[9];
g:= pa[39];
for i:= 0 to 255 do
begin
  j:= (j + W[i] + pa[i mod 128]) mod 256;
  t:=W[i];
  W[i]:=W[j];
  W[j]:=t;
  g:= (g + W[g] + pa[i mod 128]) mod 256;
  t:=W[j];
  W[j]:=W[g];
  W[g]:=t;
end;

///////////////////////////////////////////
j:= 0;
i:= 0;
g:= pa[53];
h:= pa[17];
z:= pa[67];
dd:=19+(pa[101] mod 16);
for m:=1 to N do
begin
  for v:=1 to dd do
  begin
    i:= (i + 1) mod 256;
    j:= (j + W[i] + pa[i mod 128]) mod 256;
    t:=W[i];
    W[i]:=W[j];
    W[j]:=t;

    h:= (h + W[j] + 1) mod 128;
    g:= (g + pa[h]+7) mod 128;
    t:=pa[h];
    pa[h]:=pa[g];
    pa[g]:=t;
  end;

  K:= W[(W[i] + W[j]) mod 256];

  z:= (z + pa2[h]+3) mod 128;
  C[m]:= pa2[(m+z) mod 128] xor K;
end;

///////////////////////////////////////////

for i:=1 to n do
  sa:=sa+''+inttohex(C[i],2);
C:=nil;

result:=sa;
end;


де n- довжина послідовності чисел.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Генератор псевдовипадкових чисел (ГПВЧ) на основі SRC4
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 282
Використання:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Text:=randomSRC4(7500);
end;


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Генератор псевдовипадкових чисел (ГПВЧ) на основі SRC4
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 282
Розмістимо це все на формі, отримаємо:
Зображення


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Генератор псевдовипадкових чисел (ГПВЧ) на основі SRC4
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 282
Програмну реалізацію "ГПВЧ" скачати (завантажити) можна тут:

Приєднання файлів:
GPVC-SRC4.rar [169.02 KiB]
Скачали: 100

MD5 (GPVC-SRC4.rar) = "6E89D3DB7D6DD259F95319E47731A3DC"
SHA-1 (GPVC-SRC4.rar) = "14AC84C3ADCDB3B8DADFA0842A896B7EEF5BEE4A"


інструкція:
1. Клацаємо на файлі і зберігаємо у будь-яке зручне місце на вашому комп'ютері.
(2. Перевіряємо архів на віруси. - За бажанням.)
3. Розпаковуємо вміст архіву.
4. Клацаємо на програмі.
5. Вводимо два ключі.
6. Отримуємо випадкову послідовність у НЕХ-вигляді.


Повернутися наверх
  
 
Показати повідомлення за:  Сортувати по:  
Розпочати нову тему Відповісти  [ 5 повідомлень ] 

Часовий пояс: UTC десь + 2 години



cron
Роwеrеd bу рhрВB® аnd Hostinger web hosting