Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Контрольные работы » Програмна реалізація шифру заміни та його дешифрування

Реферат Програмна реалізація шифру заміни та його дешифрування





перших комп'ютерів призначалися для виламування німецьких кодів під час Другої світової війни. p align="justify"> Хоча частотний аналіз є потужним засобом, шифрування досі залишається ефективним на практиці, так як багато потенційних криптоаналитики не знайомі з цією технікою. Злом повідомлення без частотного аналізу зазвичай вимагає знання використовуваного шифру, тобто в основному є наслідком шпигунства, хабарі, крадіжки або зради для його визначення. p align="justify"> Імовірність появи окремих букв, а також їх порядок у словах і фразах природної мови підпорядковуються статистичним закономірностям: наприклад, пара стоять поруч букв В«сяВ» у російській мові більш імовірна, ніж В«циВ», а В«оь В»не зустрічається зовсім. Аналізуючи досить довгий текст, зашифрований методом заміни, можна по частотах появи символів зробити зворотну заміну і відновити вихідний текст. p align="justify"> Частотний метод породив вимога рівномірного розподілу символів в шифртексту. Сьогодні принципи частотного аналізу широко застосовуються в програмах з підбору паролів і дозволяють на кілька порядків скоротити час пошуку. br/>

Частотні характеристики текстових повідомлень


Як згадувалося вище, важливими характеристиками тексту є повторюваність букв (кількість різних букв в кожній мові обмежена), пар букв, т.е.m (m-грам), сполучуваність букв один з одним, чергування голосних і приголосних і деякі інші особливості. Примітно, що ці характеристики є досить стійкими. p align="justify"> Ідея полягає в підрахунку чисел входжень кожної nm можливих m-грам в досить довгих відкритих текстах T = t1t2 ... tl, складених з літер алфавіту {a1, a2, ..., an}. При цьому проглядаються поспіль йдуть m-грами тексту: t2 ... tm, t2t3 ... tm +1, ..., ti-m +1 tl-m +2 ... tl.

Якщо L (ai1ai2 ... aim) - число появ m-грами ai1ai2 ... aim в тексті T, а L - загальне число підрахованих m-грам, то при досить великих L частоти L ( ai1ai2 ... aim)/L, для даної m-грами мало відрізняються один від одного.

У силу цього, відносну частоту вважають наближенням ймовірності P (ai1ai2. .. aim) появи даної m-грами в випадково вибраному місці тексту (такий підхід прийнятий при статистичному визначенні ймовірності).

У загальному значенні частоту букв в процентному вираженні можна визначити наступним чином: підраховується скільки разів вона зустрічається в шифром-тексті, потім отримане число ділиться на загальне число символів шифром-тексту; для вираження в процентному вираженні, ще множиться на 100.

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


Код програми


Шифратор

// ---------------------------------------- -----------------------------------

# include

# pragma hdrstop

# include "Unit1.h"

# include "Unit2.h"

// ---------------------------------------- -----------------------------------

# pragma package (smart_init)

# pragma resource "*. dfm" * Form1;

// ---------------------------------------- -----------------------------------

__fastcall TForm1 :: TForm1 (TComponent * Owner)

: TForm (Owner)

{-> Text = ""; -> Text = ""; -> Text = ""; -> Text = "";

}

// ---------------------------------------- -----------------------------------

void __ fastcall TForm1 :: Button1Click (TObject * Sender)

{abc = "абвгдежзийклмнопрстухфцчшщъыьэюя"; nabc, t = "", k = "", i = 1; i <= 33; i + +)

{nom [i] = ((2 * i + n))% 33;

if (nom [i] == 0) nom [i] = 33;}

for (int i = 1; i <= abc.Length (); i + +)

{int m = nom [i];

nabc = nabc + abc [m];} -> Text = nabc; = Memo1-> Text.LowerCase (); = str.Length ();

// Label2-> Caption = IntToStr (len);

for (int i = 1; i <= len; i + +)

{Memo2-> Text = "";

// Memo1-> Text = "";

for (int j = 1; j <= abc.Length (); j + +)

{

if (str [i] == abc [j]) = key + nabc [j];

}


} -> Text...


Назад | сторінка 3 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка програми шифрування та дешифрування тексту методом простої заміни
  • Реферат на тему: Розробка програм шифрування і дешифрування тексту методом простої заміни
  • Реферат на тему: Узагальнення знань про гласних звуках і буквах, подорож у чарівну країну зв ...
  • Реферат на тему: Phonetic peculiarities of the popular science text
  • Реферат на тему: Технології аналізу даних (Text Mining, Data Mining)