|  | 
 
 | 
| 
			 
			#1  
			
			
			
			
		 | ||||
| 
 | ||||
|  AES-256 Всем привет!!! Наверное каждый из вас, рано или поздно, занимался шифрованием на 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); |