Крипто-форум crprogram.16mb.com

Програмування на Object Pascal, Lazarus, криптографія, криптоаналіз, шифри, вихідні коди, вирішення задач, приклади програм

Часовий пояс: UTC десь + 2 години




Розпочати нову тему Відповісти  [ 15 повідомлень ] 
Автор Повідомлення
 Заголовок повідомлення: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 362
Ангстрем-3 - потоковий алгоритм, який розробив Михайло Масленніков у 1980 році, коли працював у 8-му управлінні КДБ.

Після розпаду Союзу, на початку 90-х років Росію заполонили фальшиві авізо.
Схема була такою:
Цитата:
Шахраї домовлялися з працівником якогось банку, щоб він надрукував авізо на деяку суму і відправив його в Центральний банк або один з «спецбанків», до числа яких відносилися Промстройбанк, Соцбанк і Агропромбанк, після чого залишалося лише отримати гроші. Оскільки «стикування» в банках проводилася з періодичністю в місяць, квартал або рік, то у шахраїв, як правило, було досить часу, щоб витратити або заховати викрадені гроші. Банківська система радянського зразка виявилася не готова до такої елементарної махінації.


У 1993 році 6000 калькуляторів Электроника МК-85С з алгоритмом Ангстрем-3 почав використовувати Центробанк Росії.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 362
Масленніков емігрував до Південної Кореї у 2002році, там же написав книгу.

Більш-менш офіційного достовірного опису цього алгоритму в мережі немає, крім книги автора.
Також немає ні тестових векторів, ні детальних прикладів, ні аналізу.
У книзі є опис для Т=16.


Востаннє редагувалось Raul в 19 бер 2013, 13:51, всього редагувалось 1 раз.

Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Доречі читав свого часу його книгу...
По криптографії там інформації мало, але почитати про життєвий шлях цікаво.

Там він описує олімпіаду 1980-го року, коли почався масовий дефіціт навіть найнеобхідніших товарів, черги і т.д.
І це був тільки початок.

Зараз вже пройшло 30 років, а все одно є люди які ідеалізують той час.

Навіть серіал зняли "Восьмидесятые")


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Схема алгоритму Ангстрем-3:
Зображення

Ой як мені вона нагадує французький A5/1.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Працює за схемою:

Для Т=16.

У перший регістр довжиною 8 байт записується відкритий текст.
У другий регістр довжиною Т записується ключ.

Схема працює Т раундів.

Вихід - регістр довжиною 8 байт - блок шифротексту.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
У книзі Масленнікова є приклад цього шифру для Т=16.
Реалізуємо його на делфі.

(терміни будемо використовувати ті що в книзі, з поясненнями на сучасний лад. Щоб з одного боку не плутатись з книгою, а з другого зрозуміти суть алгоритму.)

Якщо подивитись на схему там є круг з хрестом, у сучасних позначеннях це XOR, у автора ж це додавання по модулю 256.

Взагалі це блочний шифр з ключем довжиною 256 біт та блоком 64 біт.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Таблиця підстановки (S-бокс) позначена через грецьку літеру пі - П має вигляд:

Код:
const
  HexValues='0123456789ABCDEF';
  P: array[0..255] of byte = (
$b4,    $ba,    $3c,    $cb,    $f6,    $7e,    $09,    $3f,    $57,    $51,    $98,    $ee,    $31,    $89,    $e9,    $27,
$bd,    $0a,    $86,    $24,    $35,    $0f,    $c1,    $77,    $2d,    $3a,    $2a,    $b2,    $33,    $db,    $4e,    $56,
$a6,    $7d,    $b7,    $fe,    $d4,    $b8,    $21,    $cc,    $58,    $32,    $f9,    $14,    $b3,    $f4,    $1c,    $48,
$28,    $f8,    $cd,    $25,    $dc,    $e8,    $f7,    $1a,    $2e,    $38,    $a5,    $00,    $53,    $6a,    $bf,    $fa,
$37,    $9c,    $07,    $a0,    $91,    $59,    $54,    $7b,    $45,    $92,    $0d,    $a1,    $ff,    $0e,    $ea,    $a2,
$10,    $ce,    $e5,    $be,    $7c,    $f3,    $85,    $4b,    $78,    $c3,    $50,    $5f,    $dd,    $f1,    $87,    $c0,
$1f,    $2f,    $26,    $0b,    $64,    $f5,    $1b,    $29,    $d8,    $8d,    $cf,    $eb,    $52,    $6b,    $c7,    $0c,
$2b,    $a3,    $c5,    $4c,    $55,    $c9,    $e3,    $e2,    $c2,    $fb,    $22,    $2c,    $04,    $11,    $1d,    $81,
$17,    $4d,    $06,    $93,    $88,    $30,    $ef,    $a4,    $c8,    $3b,    $34,    $46,    $de,    $a7,    $36,    $5c,
$39,    $8f,    $66,    $3d,    $8e,    $01,    $8a,    $b9,    $c6,    $e4,    $12,    $b0,    $05,    $4a,    $fc,    $18,
$d6,    $13,    $a8,    $90,    $3e,    $8b,    $44,    $ca,    $d0,    $b1,    $40,    $15,    $e0,    $5a,    $9a,    $6d,
$d2,    $ab,    $c4,    $a9,    $6e,    $41,    $f0,    $aa,    $42,    $ac,    $19,    $5b,    $1e,    $4f,    $94,    $5d,
$16,    $8c,    $fd,    $5e,    $95,    $b5,    $97,    $6c,    $ad,    $08,    $bb,    $ae,    $96,    $20,    $7f,    $23,
$d5,    $43,    $d1,    $47,    $49,    $02,    $99,    $80,    $d9,    $60,    $61,    $65,    $70,    $af,    $62,    $63,
$9b,    $df,    $03,    $67,    $f2,    $68,    $69,    $6f,    $71,    $72,    $d7,    $73,    $74,    $75,    $76,    $79,
$ec,    $d3,    $82,    $e1,    $7a,    $ed,    $da,    $83,    $84,    $9d,    $9e,    $9f,    $b6,    $bc,    $e6,    $e7);
var
  Form1: TForm1;
x:array[0..16]of byte;
y:array[0..8]of byte;

x,y - відповідні регістри 16 та 8 байт - для ключа та тексту. ( у сучасних позначеннях К,Р,С).


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Напишемо процедуру шифрування:
Код:
procedure angstrem3crypt();
var
T,tm,i:byte;

begin

for T:=1 to 16 do
begin

tm:=(y[1] + y[2] + y[8]) mod 256;

for i:=1 to 7 do
   y[i]:=y[i+1];

y[8]:=P[(tm + x[1]) mod 256];

tm:=x[1];
for i:=1 to 15 do
   x[i]:=x[i+1];
x[16]:=tm;

end;

end;


Ось ми і реалізували шифр Ангстрем-3 для Т=16.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Щоб процедура працювала
"загорнемо" її у кнопку де пропишемо ввід/вивід даних - ключа, відкритого та шифротексту:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
txt,pass,rez,tm:string;
begin

//input pass
pass:=edit1.text;
j:=1;
for i:=1 to 16 do
begin
  tm:=pass[j]+pass[j+1];
  x[i]:=hextoint(tm);
  j:=j+2;
end;

//input text
txt:=edit2.text;
j:=1;
for i:=1 to 8 do
begin
  tm:=txt[j]+txt[j+1];
  y[i]:=hextoint(tm);
  j:=j+2;
end;


//Ангстрем-3
angstrem3crypt();


//result
rez:='';
for i:=1 to 8 do
rez:=rez+inttohex(y[i],2);
memo1.Lines.Add(rez);

end;

Як бачимо ця процедура взята з опублікованої вчора програмної реалізації AES.
І нічого складного у ній нема.
Функція hextoint взята з теми про відповідну систему числення.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Перевіримо
ключ
Код:
EF189EC87BB90FA18EBC716FD1079492


відкритий текст
Код:
D1EEE2E5F0F8E5ED


результат
Код:
D8C783EFF9CA71FA

що повністю відповідає прикладу з книги.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Програмну реалізацію "шифр Ангстрем-3" скачати (завантажити) можна тут:

Приєднання файлів:
angstrem3.rar [167.99 KiB]
Скачали: 99

MD5 (angstrem3.rar) = "B46EB2D64A5F5555664CCAAB40BAE000"
SHA-1 (angstrem3.rar) = "733976063A36560C26C03513D610A3148715533E"


інструкція:
1. Клацаємо на файлі і зберігаємо у будь-яке зручне місце на вашому комп'ютері.
(2. Перевіряємо архів на віруси. - За бажанням.)
3. Розпаковуємо вміст архіву.
4. Клацаємо на програмі.
5. Вводимо ключ та відкритий текст.
6. Отримуємо шифр текст.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
У книзі Масленніков М. показав що для Т=16 цей шифр не стійкий.
(І для стійкості на рівні 80-х років потрібен Т=40).

Звісно, є багато думок щодо цього шифра, і його використання у тих калькуляторах.
По суті калькулятор генерував 10-ти числовий хеш.
Перебрати 10^10 варіантів, у 94 не було такою вже і проблемою.
Процесор Pentium 1993 року мав частоту ~60 МГц,
тоді 167 секунд, якщо навіть 100 операцій на 1 комбінацію, виходить 5 днів.
Цілком достатньо.

Щодо використання їх на полі бою в Афганістані - опису алгоритму я не знайшов, можливо був збільшений Т.
Але хочеться сказати - з практичної точки зору - набирати на калькуляторі числа під час бою - це нонсенс.

Думок багато, і по алгоритму, і по ідеях, я б не хотів їх тут всі писати, так як багато з них - це здогади.
Звісно, легко говорити зараз, коли у практично кожного вдома домашній ПК, інтернет, книги і т.д.
У 80-ті про це лише мріяли... Шифр для практичного використання не годиться, а от як навчальний посібник цілком.

Він також придумував алгоритм генерації таблиці підстановки, збільшення її до 256*256 і т.д.
На фоні AES, SHA-3 і т.д. це вже виглядає як пережиток минулого.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Схему Ангстрем-3 зручно представити у вигляді:
Зображення


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
У свої книзі він описав цей шифр як "результат 15 річної роботи КДБ". Що я скажу - на думку спадає єдине слово - "ГАНЬБА".
Створити шифр, з ключем у 256 біт, і при тому не стійкий - за 15 років?
Чим ця схема краща за blowfish 1993 року?
Якби Шнайєр писав з таким же пафосом як і автор Ангстрему, то говорив би " про найкращий шифр всіх часів та народів" :D


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Ангстрем-3
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 3
Доречі читав свого часу його книгу...


Повернутися наверх
  
 
Показати повідомлення за:  Сортувати по:  
Розпочати нову тему Відповісти  [ 15 повідомлень ] 

Часовий пояс: UTC десь + 2 години



cron
Роwеrеd bу рhрВB® аnd Hostinger web hosting