![]() |
|
|
#1
|
||||
|
||||
|
Всем привет!!!
Наверное каждый из вас, рано или поздно, занимался шифрованием на Delphi, дак вот, многие слышали про шифровальный алгритм AES-256. Этот алгоритм считается очень стойким и плохо поддающийся крипто-анализу. ------------- Я бы хотел узнать ваши отзывы о данном алгоритме и узнать использовал ли кто нибудь его. Если кто-то заинтересовался, то так же могу оставить исходник, т.к исходников в интернете на данную тему очень мало. Последний раз редактировалось M.A.D.M.A.N., 17.06.2008 в 06:24. |
|
#2
|
||||
|
||||
|
Оставляю отзыв
![]() Данный алгоритм шифрования при длине ключа 256 бит по стойкости приравнивается к алгоритму RSA с длиной ключа 1024 бита. Не использовал, поскольку не было реализации на Делфи. При ковыряниях в других программах обнаружил, что использует его такие протекторы как Armadillo и ASProtect. Не поддается разложению (в отличии от RSA, т.е. в RSA можно сократить количество переборов зная Public Exponent и Public Module). Да, он еще и быстрее работает. Был бы признателен за исходник. |
|
#3
|
||||
|
||||
|
Простите, сегодня не получится опубликовать, сервер встал. Опубликую при первой же возможности.
|
|
#4
|
||||
|
||||
|
Качаем здесь
http://depositfiles.com/files/6057929 http://depositfiles.com/files/6058023 Код:
const
AESMaxRounds = 14;
const
AES_Err_Invalid_Key_Size = -1; {Key size <> 128, 192, or 256 Bits}
AES_Err_Invalid_Mode = -2; {Encr/Decr with Init for Decr/Encr}
AES_Err_Invalid_Length = -3; {No full block for cipher stealing}
AES_Err_Data_After_Short_Block = -4; {Short block must be last}
AES_Err_MultipleIncProcs = -5; {More than one IncProc Setting }
AES_Err_NIL_Pointer = -6; {nil pointer to block with nonzero length}
type
TAESBlock = packed array[0..15] of byte;
PAESBlock = ^TAESBlock;
TKeyArray = packed array[0..AESMaxRounds] of TAESBlock;
TIncProc = procedure(var CTR: TAESBlock); {user supplied IncCTR proc}
{$ifdef DLL} stdcall; {$endif}
TAESContext = packed record
RK : TKeyArray; {Key (encr. or decr.) }
IV : TAESBlock; {IV or CTR }
buf : TAESBlock; {Work buffer }
bLen : word; {Bytes used in buf }
Rounds : word; {Number of rounds }
KeyBits : word; {Number of bits in key }
Decrypt : byte; {<>0 if decrypting key }
Flag : byte; {Bit 1: Short block }
IncProc : TIncProc; {Increment proc CTR-Mode}
end;
const
AESBLKSIZE = sizeof(TAESBlock); |