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

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

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




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

Повідомлень: 502
Омофонні шифри - шифр простої підстановки, для яких характерна заміна літер декількома знаками.

Перші згадки про використання декількох знаків для голосних відносяться до 15 століття в Італії.


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

Повідомлень: 502
Цей шифр винайдений щоб протистояти частотному криптоаналізу.

Припустімо що середньостатистичний текст українською мовою має розподіл літер:
Код:
"   "   0,1477
" о "   0,0758
" н "   0,0607
" а "   0,0591
" і "   0,0497
" и "   0,0489
" т "   0,04
" в "   0,039
" р "   0,0369
" е "   0,0352
" с "   0,0315
" к "   0,0313
" д "   0,0269
" л "   0,0256
" у "   0,0234
" м "   0,023
" п "   0,02
" я "   0,0169
" з "   0,0165
" ь "   0,014
" б "   0,0121
" , "   0,012
" г "   0,0114
" х "   0,0104
" . "   0,0094
" ч "   0,0089
#13   0,0086
" й "   0,0079
" ц "   0,0074
" ю "   0,007
" ж "   0,0066
" ї "   0,0062
" є "   0,0049
#10   0,0047
" ш "   0,0045
" ф "   0,0038
" щ "   0,0033

Тобто з 1000 знаків літера "о" зустрічається ~76 разів.

Далі беремо, скажімо, у якості знаків шифр тексту набір цифр від 000 до 999.
Тоді літеру "о" можна позначити 76-ма різними знаками.

Наприклад,
Код:
о=112
о=357
о=771
о=224
...
...
о=377


далі для "н" аналогічно 61 знак:
Код:
н=993
н=871
...
...
н=002


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

Повідомлень: 502
Таким чином ми отримаємо практично рівномірний розподіл знаків.
Тобто знаки від 000 до 999 на будуть повторюватись однаково часто.

Але така схема має недоліки:

Як би ми цього не хотіли, розподіл ніколи не буде ідеально рівномірним, тобто на 1000 знаків завжди знайдеться декілька які повторюватимуться більше 1-го разу.

Збільшується кількість різних знаків, а отже довжина шифртексту.
Для шифрування тексту у 10кБ знадобиться передавати шифртекст 20кБ.


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

Повідомлень: 502
Щоб вирішити якось ці недоліки використаємо набір байт від 0-255(таблиця ASCII).

Тоді для "о" нам знадобиться 0,0758*256 ~ 19 знаків, а для "щ" - 1.

У такому випадку для збереження 10кБ тексту нам знадобиться ті ж 10кБ шифртексту.

Але так як ми використали меншу кількість знаків і округлювали імовірності розподіл буде ще гіршим.


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

Повідомлень: 502
Криптораналіз таких шифрів проводиться все тим же частотним криптоаналізом, тількт розглядаються не окремі знаки а біграми.

Наприклад для української мови найпоширеніші біграми
"на","ст","не","по","ти".

Тоді будується таблиця 256х256 і знаходяться біграми які найчастіше зустрічаються.
Причому набір знаків першої літери не дорівнює набору знаків другої літери.
Відповідно знаходяться набори знаків.
Після чого вже знаходять яку літеру позначає той чи інший набір знаків.


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

Повідомлень: 502
Цікавим також є метод стеганографії на основі таких шифрів.

Візьмемо 26*26 (літер англійського алфавіту) = 676 знаків, тоді
для "щ" необхідно 2 знаки, для "о" = 51.

Тоді припустімо
для щ
Код:
щ=JK
щ=ER


для о
Код:
о=GG
о=WS
о=JO
о=QA
...
...
...
о=AB


Тоді слово "що" можна зашифрувати декількома біграмами:
Код:
JK GG
ER GG
JK WS
ER WS

і т.д.

Далі
1 біт можна зашифрувати
Код:
0=JK
1=ER

Код:
0=GG
1=WS
0=JO
1=QA


В результаті біграма
ER JO буде означати і "що" і "10" одночасно.

Тобто
ER JO JH LO SD UI PO
буде означати
1 0 1 0 1 1 1
і текст
"що ж не"


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

Повідомлень: 502
У такому випадку криптоаналітик зламає перший шифр і ймовірно зупиниться, а другий шифр може бути досить стійким, а зважаючи що нема впевненості що другий шифр існує з ним "повозиться", і ймовірно залишить.


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

Повідомлень: 502
Як і всі шифри класичної криптографії не стійкий до КРА.


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

Повідомлень: 502
Наближений приклад

Код:
Шифр "Ск" (Скандинавия)

1 2 3 4 5 6 7 8 9 0
2 ф у е о к д ш е и
3 т р н и г ш р з г
4 п м з в ч п ж в ю
5 л ж б х о е б щ е
6 е а ф н д а ш а в
7 в у м г щ ч ь ю з
8 т и в ш ж х у ж э
9 к б ч с ф о г я н
0 а ю д у и в ы с я


Шифр ИНО ОГПУ (Іноземний відділ Об'єднаного державного політичного управління)
1926 рік


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

Повідомлень: 282
Tariq писал(а):
Код:
Шифр "Ск" (Скандинавия)



дивний розподіл літер у них був, ж/ш=4, о/н=3, т=2
Код:
в   6
е   5
а   4
г   4
ж   4
и   4
у   4
ш   4
б   3
д   3
з   3
н   3
о   3
ф   3
ч   3
ю   3
к   2
м   2
п   2
р   2
с   2
т   2
х   2
щ   2
я   2
л   1
ы   1
э   1
ь   1


Повернутися наверх
  
 
 Заголовок повідомлення: Re: Омофонні шифри
СообщениеДодано: 18 гру 2014, 08:43 
Не в мережі

Повідомлень: 8
Наприклад, шифр часів Російської імперії:
Шифр для листування з бароном Кейзерлінгом, відправленим до Польщі в грудні 1733 року:
Код:
 A    =    11   ,    12   ,    13   ,    14   ,    15   ,
 B    =    16   ,    17   ,    18   ,    19   ,    20   ,
 C    =    21   ,    22   ,    23   ,    24   ,    25   ,
 D    =    26   ,    27   ,    28   ,    29   ,    30   ,
 E    =    31   ,    32   ,    33   ,    34   ,    35   ,
 F    =    36   ,    37   ,    38   ,    39   ,    40   ,
 G    =    41   ,    42   ,    43   ,    44   ,    45   ,
 H    =    46   ,    47   ,    48   ,    49   ,    50   ,
 I    =    51   ,    52   ,    53   ,    54   ,    55   ,
 J    =    56   ,    57   ,    58   ,    59   ,    60   ,
 K    =    61   ,    62   ,    63   ,    64   ,    65   ,
 L    =    66   ,    67   ,    68   ,    69   ,    70   ,
 M    =    71   ,    72   ,    73   ,    74   ,    75   ,
 N    =    76   ,    77   ,    78   ,    79   ,    80   ,
 O    =    81   ,    82   ,    83   ,    84   ,    85   ,
 P    =    86   ,    87   ,    88   ,    89   ,    90   ,
 Q    =    91   ,    92   ,    93   ,    94   ,    95   ,
 R    =    96   ,    97   ,    98   ,    99   ,   100   ,
 S    =   101   ,   102   ,   103   ,   104   ,   105   ,
 T    =   106   ,   107   ,   108   ,   109   ,   110   ,
 U    =   111   ,   112   ,   113   ,   114   ,   115   ,
 V    =   116   ,   117   ,   118   ,   119   ,   120   ,
 X    =   121   ,   122   ,   123   ,   124   ,   125   ,
 Y    =   126   ,   127   ,   128   ,   129   ,   130   ,
 Z    =   131   ,   132   ,   133   ,   134   ,   135   .



Герман Карл фон Кейзерлінг (нім. Hermann-Karl von Keyserlingk, 1697-1765) - литовський дипломат на російській службі. У 1733 році Кейзерлінг був у чині дійсного статського радника і званні повноважного міністра призначений до двору щойно обраного польського короля Августа III (1696-1763).


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

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



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