b, (Nr +1) * Nb-1]) = state
end
Алгоритм вибору раундового ключа
На кожній ітерації i раундовий ключ для операції AddRoundKey вибирається з масиву починаючи з елемента до .
Варіанти алгоритму
На базі алгоритму Rijndael, що лежить в основі AES, реалізовані альтернативні криптоалгоритми. Серед найбільш відомих - учасники конкурсу Nessie: Anubis на інволюцію, автором якого є Вінсент Реймі і посилений варіант шифру - Grand Cru Йохана Борстен. p align="justify"> Крипостійкість
У червні 2003 року Агентство національної безпеки США ухвалило, що шифр AES є достатньо надійним, щоб використовувати його для захисту відомостей, що становлять державну таємницю (англ. classified information). Аж до рівня SECRET було дозволено використовувати ключі довжиною 128 біт, для рівня TOP SECRET були потрібні ключі довжиною 192 і 256 біт. br/>
Програмна реалізація алгоритму AES
Приклад 1
Виберемо дію В«ШифруванняВ», потім виберемо файл з расшіреніем.txt, натискаємо на кнопку В«ШифруватиВ» (також можна вибрати параметри шифрування зліва в полі В«Виконання процесуВ»). Програма створює файл EncodedFile.txtрядом з вихідним файлом. br/>В
Малюнок 1. Шифрування
Приклад 2
Виконаємо зворотну дію. У полі вихідний файл виберемо створений раніше програмою файл EncodedFile.txt, виберемо дію В«ДешифруватиВ». Програма створює файл DecodedFile.txtрядом з вихідним файлом. p> шифрування програмний алгоритм криптографічний
В
Малюнок 2. Дешифрування
Лістинг програми
unit Main;
interface, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, Math, Buttons, ExtCtrls, Menus, jpeg, pngimage; = class (Exception); = ^ Integer; = array [ 0 .. 15] of byte; = array [0 .. 15] of byte; = array [0 .. 43] of longword; = ^ TAESBuffer; = ^ TAESKey128; = ^ TAESExpandedKey128; = class (TForm): TLabel; : TEdit;: TOpenDialog;: TButton;: TButton;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit; _Time: TLabel;: TLabel; _Status: TLabel;: TMemo;: TButton;: TPanel;: TMemo; : TEdit;: TRadioGroup;: TComboBox;: TLabel;: TLabel;: TLabel;: TLabel;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TLabel;: TLabel;: TImage;: TLabel ; Button1Click (Sender: TObject); Button2Click (Sender: TObject); ButtonStopClick (Sender: TObject); CBOptChange (Sender: TObject); FormActivate (Sender: TObject); RadioGroup1Click (Sender: TObject); MFExitClick (Sender: TObject); MFChooseClick (Sender: TObject); FormCreate (Sender: TObject); MHHelp...