FROG алгоритъм, блог за криптиране
е създадена през 1998 г. от трима експерти от Tecnologia Apropriada (TesArgo) от малката латиноамериканска държава Коста Рика (по-рано неизвестна за развитието им в областта на криптографията): Dianelos Georgoudis, Damian Jlepy (Damian Leroux) и Billy Billy Chavez Simon Chaves ) [160].
Основни характеристики и структура на алгоритъма
Както знаете, AES състезанието (вижте раздел 2.1) установено за алгоритмите - участници в състезанието, задължителната поддръжка на 128-битовия размер на шифрования блок данни, както и 128-, 192- и 256-битовите криптиращи ключове. Разработчиците на алгоритъма FROG обаче са предложили несравнимо по-широк набор от стойности за тези параметри:
? разрешено е да се използват ключове от 5 до 125 байта (т.е. от 40 до 1000 бита);

Фигура: 3.82. Кръгла структура на алгоритъма ЖАБА
Независимо от размера на ключа и размера на блока, криптирането се извършва в 8 кръга.
Във всеки кръг, над всеки байт от криптирания блок (за определеност ще приемем също, че блоковете са с размер 16 байта)
следните действия (фиг. 3.82):
1. Стойността на текущия (i-ти) байт се добавя по модул 2 със стойността на същия байт от 1-ва част на кръглия ключ (процедурата за разширяване на ключа е описана по-долу).
2. Втората част на кръглия ключ е пермутационна таблица. От тази таблица е избран байт, чийто пореден номер е равен на стойността, изчислена в първата стъпка. Стойността на избрания байт замества стойността на текущия байт на криптирания блок данни.
3. Стойността на следващия байт (/ +1 - се измества по модул 2 със стойността, избрана в стъпка 2. Полученият резултат замества старата стойност на/+1-ия байт на криптирания блок данни.
4. Третата част на кръглия ключ е индексната таблица. Стойността на i-тия байт на индексната таблица дефинира още един модифициран байт на криптирания блок данни, който се променя по абсолютно същия начин i + 1-ви байт (т.е. той се добавя по модул 2 със стойността, получена в стъпка 2).
Процедура за разширяване на ключове
Тази процедура трябва да получи 8 кръгли ключа от ключа за криптиране - по един за всеки кръг на алгоритъма. Както можете да видите от описанието на алгоритъма, кръглият ключ се състои от три подклави:
? 16-байтова 1-ва част;
? 256-байтова пермутационна таблица;
? 16-байтова индексна таблица.

Фигура: 3.83. Процедура за разширяване на ключове
По този начин, за да работи алгоритъмът, е необходимо да се генерират 2304 байта ключова информация. Ето как работи (фиг. 3.83):
1. Чрез "умножаване" на ключа за шифроване (т.е. стойността на ключа за криптиране се повтаря необходимия брой пъти и ключът за шифроване на този
алгоритъмът, както беше споменато по-горе, има размер от 5 до 125 байта), генерира се първият 2304-байтов временен масив от данни. Байтовете на последното от „умножените“ копия на ключа, които надхвърлят границите на необходимия 2304-байтов масив (например последните 71 байта на 125-байтов ключ - ключът с максимален размер), се изхвърлят.