Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.10.130] |
|
Сообщ.
#1
,
|
|
|
Пытаюсь сделать реализацию этого шифра но не получается при повторном прогоне через алгоритм получается ботва какая то
если кто знаком с этим алгоритмом помогите пожалуйста key_step:=0; for StSh:=1 to 32 do begin // buf и slch --- блоки открытого текста //ОСНОВНАЯ ЧАСТЬ // // // kzu[i] - массив из 8 32-разр чисел rBlock:=slch; lBlock:=(buf+kzu[key_step] {сложение с ключем} ) mod two32; G_HEX:=IntToHex(lBlock,8); //16-е з-е блока Leng_Hex:=Length(G_HEX); for i:=0 to Leng_Hex-1 do begin TempGost[i]:=copy(G_HEX,i+1,1); end; //подстановка по таблице замены -- таб. 8х4 заполнена 16-и знач-и for i:=0 to Leng_Hex-1 do begin for j:=0 to 15 do begin tempHex:=IntToHex(j,1); if TempGost[i]=tempHex then begin ExitStr:=ExitStr+IntToHex(TabZam[i,j],1); break; end; end; end; temps:=HexToInt(ExitStr) ; ExitStr:=''; // в ассме идет сдвиг и XOR asm xor EAX,EAX; xor EBX,EBX; mov EBX,rBlock; mov EAX,temps; rol EAX,11; xor EAX,EBX; mov lBlock,EAX; end; // //ОСНОВНАЯ ЧАСТЬ // // buf:=slch; // Блоки меняются местами slch:=lBlock; if StSh<=23 then begin key_step:=key_step+1; if key_step=8 then key_step:=0; end else begin if StSh=24 then key_step:=8; key_step:=key_step-1; end; end; если какаято ошибка то сообчите пожалуйста, а если ошибка в ДНК то тоже сообщите заранее благодарен |
Сообщ.
#2
,
|
|
|
А вот эта ссылка не поможет?
http://kiev-security.bigmir.net/b/102.htm |
Сообщ.
#3
,
|
|
|
сам алгоритм я там и брал,
а вот релиз на Delphi пока не могу осуществить делал полный пошаговый прогон но это ничего недало (ошибку так и не нашел). Исходники из ссылки написаны на Асме разбираться в них себе дороже. У меня диплом просто 25 июня а ежели вставлю асмовский код , то на вопрос комиссии "а как это?" ответить будет трудновато хотя ассемблер вроде понимаю. |