Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра САПР
Звіт
Про виконання лабораторної роботи № 6
з курсу: “Методи та засоби комп’ютерних інформаційних технологій”
МЕТОДИ ШИФРУВАННЯ ТА ДЕШИФРУВАННЯ
МЕТА РОБОТИ
Мета роботи - вивчення простих методів шифрування та дешифрування інформації та їх особливостей.
2.1. Криптографічні системи.
Перетворення секретної інформації – це кодування даних, яке використовується для маскування інформації. Ці перетворення змінюють дані, представлені в явній формі, так, що вони стають нерозпізнаваними (з певною мірою надійності) неавторизованими людьми. Шифрування, тобто перетворення секретної інформації, є особливо ефективним засобом проти несанкціонованого доступу до повідомлень, які передаються по лініях зв'язку і неавторизованих доступів до даних, що зберігаються у віддалених файлах. Навіть просте перетворення секретної інформації є ефективним засобом, що дає можливість приховати її значення від більшості користувачів.
Коди і шифри використовувалися протягом багатьох віків. Спартанці в V ст. до н. е. і правляча верхівка в Венеції (Рада десяти) в XVI в, користувалися методами шифрування задовго до епохи ЕОМ.
Якщо інші методи управління доступом не зможуть запобігти попаданню даних в руки неавторизованих людей, то ці дані все одно будуть для них незрозумілі, якщо вони були зашифровані. Крім того, вартість простих, але досить ефективних перетворень секретної інформації, может бути дуже невеликою.
У загальній формі в криптографічній системі початкове повідомлення М і ключ К є входами в деякий перетворюючий пристрій (який може бути реалізоване або апаратно, або програмно). Якщо до лінії зв'язку підключиться зловмисник, він зможе викрасти зашифроване повідомлення (або шифровку) Е. Процес відновлення повідомлення при невідомому ключі називаеться дещифруваненям.
Щоб зрозуміти зміст зашифрованого повідомлення, неавторизовані особи повинні знати алгоритм шифрування (який їм іноді вдається дізнатися) і ключ (який не повинен бути їм доступний). Ключі не повинні зберігатися в системі довше, ніж це необхідно. У ідеальному випадку їм потрібно знаходитися там тільки на час дійсного використання.
2.2. Шифрування підстановкою.
2.2.1. Прямі підстановки.
У прямих підстановках кожний знак початкового тексту замінюється одним або декількома знаками. Одним з важливих підкласів прямих підстановок є моноалфавітні підстановки, в яких встановлюється взаємооднозначна відповідність між кожним знаком аі алфавіту повідомлень А і відповідним знаком hj зашифрованого тексту.
Дуже простим прикладом перетворення секретної інформації є шифр Цезаря, який, за переказами, був використаний ще Юлієм Цезарем . Рядок знаків YGBPCGFBOQTGBUPQYBHQTBDCVVGTBUMKKPI є зашифрованою формою наступного повідомлення: WE NEED VORE SNOW FOR BETTER SKIING (Для кращого катання на лижах треба більше снігу).
Шифр Цезаря фактично являє собою окремий випадок методу моноалфавітної підстановки букв одного алфавіту. Кожний знак Р з початкового алфавіту замінюється відповідним числом Р(Р), [р(А)=1, р(В)==2,. ... р(Z)=26, пропуск = 0]. Потім формується еквівалентне зашифроване число у з рівняння
y(^)=p(Р) +2 (mod 27) (1)
Таким чином, у(Т)=р(Т)+2=20+2=22, у(1)=р(1)+2=9+2=11 і т. д.
Значення у потім заміняються відповідними їм буквами для отримання зашифрованого тексту.
Проілюструємо шифрування методом підстановки шифром який не є шифром Цезаря.
Початкове повідомлення: WE NEED MORE SNOW FOR BETTER SKIING.
Ключ:
вхід: bABCDEFGHIJKLMNOPQRTUVWXYZ
вихід: VZHLANQRCWDXFOUSPBTIELGMbKY
Зашифрований текст:
МNVUNNAVOSTNVIUSMVQSTVHNEENTVIXWWUR
Зашифроване повідомлення отримано таким чином. Беремо знак з початкового повідомлення в рядку ВХІД ключа і замінюємо його відповідним знаком з рядка ВИХІД.
Цей метод підстановки, хоч до деякої міри і є ефективним для заплутування при випадковому прочитанні, не зможе надовго зупинити досвідченого промислового шпигуна, оскільки він легко піддається здійснюваному за допомогою ЕОМ частотному аналізу зустрічності букв і пар букв.
Всі методи моноалфавітної підстановки можна представити як числові перетворення букв початкового тексту, що розглядаються як числа. Кожна буква в тексті множиться на деяке число (назване десятковим коефіцієнтом) і додається до деякого іншого числа (коефіцієнту зсуву)
с=(aP+s) mod K (2)
де: а - десятковий коефіцієнт; s - коефіцієнт зсуву. Результуюче число зменшується за правилом віднімання модуля K, де K - розмір алфавіту, і зашифрований текст формується із відповідних йому алфавітних еквівалентів. Неважко пересвідчитися, що рівняння (1) для шифру Цезаря є фактично рівнянням (2) з а =1, s=2, і K=27.
Існують машини, що мають команду ТРАНСЛЮВАТИ, яка забезпечує дуже легкі для використання шифри підстановки. Наприклад, на ІВМ 370 користувач встановлює таблицю з 256 байтів. Двійкове значення кожного байта, яке користувач хоче зашифрувати, використовується як індекс в таблиці для пошуку відповідного перетвореного байта. Це перетворення здійснюється за одну машинну команду.
2.2.2. Багатоалфавітні підстановки.
Проста багатоалфавітна підстановка послідовно і циклічно міняє алфавіти, що використовуються. При u-алфавітній підстановці знак т1, з початкового повідомлення замінюється знаком з алфавіту В1, т2 відповідним з алфавіту В2. .., ті - знаком з алфавіту Ві, mі+1 знову з алфавіту В1 і т. д.
ВХІДНИЙ ЗНАК: m1,m2,m3,m4,m5,m6,m7
АЛФАВІТ ПІДСТАНОВКИ: B1,B2,B3,B4,B5,B1,B2,.
Ефект використання багатоалфавітної підстановки полягає в тому, що забезпечується маскування природної частотної статистики початкової мови L, оскільки конкретний знак з алфавіту А може бути перетворений в декілька різних знаків шифрувального алфавіту В. Рівень захисту, що забезпечується теоретично, пропорційний довжині періоду в послідовності алфавітів, що використовуються.
Як приклад приведемо використання ключа восьмибуквенного слова SECURSTY, що повторюється для шифрування тексту. Запишемо під кожною початковою буквою відповідну букву ключа. Ми можемо розглядати перший алфавіт як такий що зсуває кожний знак, вміщений в кільце, на 19 (S), тобто W стає О, А стає Т, В стає U і т. д.; другий алфавіт, як зсуваючий кожний знак на 5 (Е), тобто Е стає J, А стає F, В стає G і т. д. Використовуючи додавання по модулю 27 отримаємо такий зашифрований текст:
WE NEED MORE SNOW FOR BETTER SKIING
SECURITYSECURITYSECURITYSECURITYSE
OJCHWNXYETUZRAGMOEIVCLYHLRADGASJ
Така проста багатоалфавітна підстановка (шифр Віжінера) з періодом и вимагає, щоб зловмисник мав в своєму розпорядженні принаймні 20и знаків, перехоплених в шифровці, до того як вона може бути розкрита.
G-контурна багатоалфавітна підстановка являє собою метод шифрування, що використовує g наборів алфавітів, що застосовуються циклічно з періодами u1,u2,…ug. Цей шифр розкрити значно складніше, ніж просту багатоалфавітну підстановку.
2.2.3. Монофонічні шифри
Монофонічний шифр являє собою багатоалфавітний шифр підстановки, що зрівнює частоту появи зашифрованих знаків і таким чином захищає шифрований текст від розкриття за допомогою частотного аналізу. Для знаків, що зустрічаються часто, потрібна відносно велика кількість зашифрованих еквівалентів. У той же час для знаків, що використовуються нечасто, може виявитися достатнім один або два зашифрованих знаки.
2.3. Загальні принципи для методів перетворення підстановкою.
Всі описані методи шифрування можна розглядати як задачі сучасної алгебри. Між К знаками алфавіту А і набором позитивних цілих чисел 0, 1,. ..,К-1 встановлюється довільна відповідність. При додаванні і відніманні по модулю К ці додатні цілі числа формують алгебраїчне кільце, що використовується для шифрування, а також однозначні зворотні перетворення. Тому якщо ми вибираємо ціле w в діапазоні від 0 до К-1, то цим самим автоматично проводимо вибір конкретного перетворення підстановкою ei=mi+w(mod k-1) і зворотнього перетворення mi=ei+(mod K-1).
Якщо w фіксоване, то ми маємо одноалфавітну підстановку. Якщо w вибирається з послідовності w1,w2,…wn, то ми маємо багатоалфавітну підстановку з періодом n.
Якщо в багатоалфавітній підстановці:
а) число знаків в ключі перевищує загальне число початкових знаків, що шифруються;
б) ключ використовується тільки один раз;
в) початковий текст не може бути викрадений зловмисником,
то зашифрований текст є теоретично таким, що нерозкривається і називається системою Вермена. Тому ми завжди прагнемо до довгих наборів знаків ключа. Як буде видно далі, ми можемо на практиці отримувати нескінченні ключові послідовності, які можуть бути використані в багатьох додатках.
2.4. Перестановки.
Знаки початкового тексту можна переставляти відповідно до деякого правила. Наприклад, знаки тексту в явній формі WE/NEED/MORE/SNOW/FOR/BETTER/SKIING можуть бути переставлені відповідно до ключа: “переставити угрупування з чотирьох букв, що знаходяться в порядку 1 2 3 4 в порядок 3 1 4 2”. Первинний текст спочатку розбивається на групи WE/N_EED/_ MORE_ /SNO_W/FO_R/BE_TTER_/SKI_ING+, а потім перетворюється в зашифрований текст: /WNE_DE/E_RMEO_N/OS_FWO/_BRE/_ETRT_K/IS_GIXN. Коса межа відповідає пропуску, а + пустому знаку, що використовується для доповнення початкового тексту. Часто з кожним початковим алфавітом використовується декілька пустих знаків (нулів). Однак, якщо зловмисник відгадає довжину угрупування, то він легко може потім зробити різні можливі перестановки, особливо використовуючи ЕОМ.
2.5. Частотний аналіз.
Більшість штучних мов (і всі природні мови) мають характерний частотний розподіл букв і інших знаків. Наприклад, буква Е найбільш часто зустрічається в англійській мові, а Z найбільш рідка. Однак це зовсім не говорить про те, що не будуть попадатися англійські (вихідні), повідомлення, в яких інша буква буде зустрічатися частіше, ніж Е, і рідше, ніж Z. Але для дуже великого числа англійських повідомлень можуть бути встановлені певні характерні частоти.
Більшість повідомлень, зашифрованих методом перестановки або одноалфавітної підстановки, зберігають характерний частотний розподіл і, таким чином, дають крипто-аналітику шлях до розкриття шифру. Криптоаналітики часто використовують індекс відповідності (ІС) для визначення того, чи знаходяться вони на правильному шляху.
По визначенню ІС являє собою оцінку суми квадратів імовірностей кожної букви. Це використовується особливо у тих випадках, коли об'єм зашифрованого тексту відносно великий. Шифровки, які дають значення ІС більші, ніж 0,066 (для англійської мови), самі повідомляють про те, що ймовірно використовувалася одноалфавітна підстановка, даючи, таким чином криптоаналітикам інструмент для того, щоб приступити до розгадки шифру. Якщо ІС знаходиться між 0,052 і 0,066, то, ймовірно, був використаний двохалфавітний шифр підстановки. Криптоаналітик просто бере символ, що найчастіше зустрічається, і передбачає, що це пропуск, потім бере наступний найбільш частий символ і передбачає, що це Е, і т.д., щоб прийти до можливого рішення. Цей процес можна автоматизувати застосувавши ЕОМ, однак аналіз можливих варіантів повідомлень повинна робити людина.
Справа дуже ускладнюється, коли криптоаналітик стикається з рівномірним розподілом символів (IС=1/26=0,038 для англійської мови), який виходить при використанні багатоалфавітної підстановки.
3. ЛАБОРАТОРНЕ ЗАВДАННЯ
1. Ознайомтесь з методами шифрування.
2. За допомогою ЕОМ зашифрувати і дешифрувати текст, провести частотний аналіз і дешифрувати текст, зашифрований методом прямої підстановки при невідомому ключу.Теcтовий текст
Проблеми сучасного світу широко відомі: екологія, локальні війни, економічна прірва між Заходом і країнами “третього світу” і т.д.. Іншого роду проблеми чекають нас при переході до “інформаційного суспільства” - такому, як його ідеалізовано розуміють автори концепції. Ми вже практично з'ясували, що треба робити, але не завжди знаємо як - тобто залишається відкритим питання технологій. Крім того, неясне питання про перебудову свідомості людей для нового типу мислення. Що ж стосується проблем “інформаційного суспільства”, те тут кілька глобальних є причиною більш дрібних. Перша з них - принципова невизначеність сутності інформації, як матеріальної, так і з філософської точки зору. Інша - взаємодія техніки і природи – чи є перша продовженням другої чи її антиподом. Нарешті, третя - взаємини техніки, інформації і людини - чи належно людині пристосовуватися до бурхливо зростаючого шквалу інформації і стрімко мінливій техніці чи ж необхідно загальмувати розвиток і пошукати інший шлях. У принципі, питання про бюрократично-інформаційну систему і тотальної контролі є похідним від цих трьох. Ці питання ще чекають своїх дослідників.
Штучний інтелект зараз є “гарячою точкою” наукових досліджень. У цій точці, як у фокусі, сконцентровані найбільші зусилля кібернетиків, лінгвістів, психологів, філософів, математиків і інженерів. Саме тут зважуються багато корінних питань, зв'язані зі шляхами розвитку наукової думки, із впливом досягнень в області обчислювальної техніки і роботики на життя майбутніх поколінь людей. Тут виникають і дістають права громадянства нові методи наукових міждисциплінарних досліджень. Тут формується новий погляд на роль тих чи інших наукових результатів і виникає те, що можна було б назвати філософським осмисленням цих результатів. Явища, що відображаються в таких фундаментальних поняттях кібернетики, як інформація і керування, мають місце в органічній природі і громадському житті. Таким чином, кібернетику можна визначити як науку про керування і зв'язок з живою природою в суспільстві і техніці. Одне з найважливіших питань, навколо якого йдуть філософські дискусії - це питання про те, що таке інформація, яка її природа? Для характеристики природи інформаційних процесів необхідно коротко розглянути природну основу всякої інформації, а такою природною основою інформації є властива матерії об'єктивна здатність відображення. Інформація в живій природі на відміну від неживої відіграє активну роль, тому що бере участь у керуванні всіма життєвими процесами. Матеріалістична теорія відображення бачить рішення нових проблем науки і, зокрема, такої кардинальної проблеми природознавства як перехід від неорганічної матерії до органічного, у використанні методологічної основи діалектичного матеріалізму. Проблема полягає в тім, що існує матерія, здатна відчувати, і матерія, створена з тих же атомів і в теж час не володіє цією здатністю. Питання, у такий спосіб поставлене цілком конкретно і, тим самим, штовхає проблему до рішення. Кібернетика впритул зайнялася дослідженням механізмів саморегуляції і самоуправління. Разом з тим, залишаючись методично обмеженими, ці досягнення залишили відкритими ряд проблем до розгляду яких привели внутрішні злами кібернетики. Свідомість є не стільки продуктом розвитку природи, скільки продуктом громадського життя людини, суспільної праці попередніх поколінь людей. Вона є істотною частиною діяльності людини, за допомогою якої створюється людська природа і не може бути прийнята поза цією природою. Якщо в машинах і взагалі в неорганічній природі відображення є пасивний, мертвий фізико-хімічний, механічний акт без узагальнення і проникнення в сутність явища, що узагальнюється, то відображення у формі свідомості є, на думку Ф.Енгельса "пізнання високоорганізованою матерією самої себе, проникнення в сутність, закон розвитку природи, предметів і явищ об'єктивного світу". У машині ж відображення не усвідомлене, тому що воно здійснюється без утворення ідеальних образів і понять, а відбувається у виді електричних імпульсів, сигналів і т.п. Оскільки машина не мислить, ця не є та форма відображення, що має місце в процесі пізнання людиною навколишнього світу. Закономірності процесу відображення в машині визначаються, насамперед, закономірностями відображення дійсності у свідомості людини, тому що машину створює людина з метою більш точного відображення дійсності, і не машина сама по собі відбиває дійсність, а людина відбиває її за допомогою машини. Тому відображення дійсності машиною є складеним елементом відображення дійсності людиною. Поява кібернетичних пристроїв приводить до виникнення не нової форми відображення, а нової ланки, що наслідує відображення природи людиною. Конкретизація поняття “штучний інтелект”. У поняття “штучний інтелект” вкладається різний зміст - від визнання інтелекту в ЕОМ, що вирішують логічні чи навіть будь-які обчислювальні задачі, до віднесення до інтелектуальних лише тих систем, що вирішують весь комплекс задач, здійснюваних людиною, чи ще більш широку їхню сукупність. Ми постараємося виділити той зміст поняття “штучний інтелект”, що найбільшою мірою відповідає реальним дослідженням у цій області. Як відзначалося, у дослідженнях зі штучного інтелекту учені відволікаються від подібності процесів, що відбуваються в технічній системі чи в реалізованих нею програмах, з мисленням людини. Якщо система вирішує задачі, що людина звичайно вирішує за допомогою свого інтелекту, то ми маємо справу із системою штучного інтелекту.
Зашифрований текст
NjЏ±Наa‘7‹©бP‹лЏЛЏ7‹Kхж©7ю‘jЏ–Џ7KхІЏaх¶7а–ЏНЏЛхwC7НЏ–PНВлх7KхFл‘C7а–ЏлЏaхблP7ЙjхjKP7aхx7P«ЏІЏa7х7–jP(лPa‘7BжjажВЏЛЏ7‹Kхж©•7х7жzІzz7элюЏЛЏ7jЏІ©7ЙjЏ±Наa‘7ба–P`жВ7лP‹7Йj‘7Йаjа«ЏІх7ІЏ7BхлWЏjaPЎхFлЏЛЏ7‹©‹ЙхНВ‹жKP•7J7жP–Џa©C7w–7FЏЛЏ7хІаPНх6ЏKPлЏ7jЏ6©aх`жВ7PKжЏj‘7–ЏлЎаЙЎх(z7"‘7Kxа7ЙjP–ж‘блЏ76Мw‹©KPН‘C7ЄЏ7жjа±P7jЏ±‘ж‘C7PНа7ла76PKxІ‘76лP+aЏ7w–7J7жЏ±жЏ76PН‘юP+жВ‹w7KхІ–j‘ж‘a7Й‘жPллw7жа«лЏНЏЛхFz7Јjхa7жЏЛЏC7лаw‹ла7Й‘жPллw7ЙjЏ7Йаj౩ІЏK©7‹KхІЏaЏ‹жх7Н`ІаF7ІНw7лЏKЏЛЏ7ж‘Й©7a‘‹Наллwz7ЩЏ7x7‹жЏ‹©+жВ‹w7ЙjЏ±Наa7BхлWЏjaPЎхFлЏЛЏ7‹©‹ЙхНВ‹жKP•C7жа7ж©ж7–хНВ–P7ЛНЏ±PНВл‘«7+7Йj‘б‘лЏ`7±хНВю7Іjх±л‘«z7NаjюP767л‘«7J7Йj‘лЎ‘ЙЏKP7лаK‘6лPбалх‹жВ7‹©жлЏ‹жх7хлWЏjaPЎх(C7w–7aPжаjхPНВлЏ(C7жP–7х767WхНЏ‹ЏW‹В–Џ(7жЏб–‘76Џj©z7элюP7J7K6P+aЏІхw7жа«лх–‘7х7Йj‘jЏІ‘7О7б‘7+7ЙаjюP7ЙjЏІЏKxаллwa7Іj©ЛЏ(7б‘7((7Pлж‘ЙЏІЏaz7%PjаюжхC7жjажw7J7K6P+a‘л‘7жа«лх–‘C7хлWЏjaPЎх(7х7Н`І‘л‘7J7б‘7лPНаxлЏ7Н`І‘лх7Йj‘‹жЏ‹ЏK©KPж‘‹w7ІЏ7±©j«Н‘KЏ76jЏ‹жP`бЏЛЏ7ю–KPН©7хлWЏjaPЎх(7х7‹жjхa–Џ7aхлН‘KхF7жа«лхЎх7б‘7x7лаЏ±«хІлЏ76PЛPНВa©KPж‘7jЏ6K‘жЏ–7х7ЙЏю©–Pж‘7хлю‘F7юНw«z7.7Йj‘лЎ‘ЙхC7Й‘жPллw7ЙjЏ7±`jЏ–jPж‘блЏJхлWЏjaPЎхFл©7‹‘‹жаa©7х7жЏжPНВлЏ(7–ЏлжjЏНх7+7ЙЏ«хІл‘a7KхІ7Ў‘«7жjВЏ«z7lх7Й‘жPллw7Єа7ба–P`жВ7‹KЏ(«7ІЏ‹НхІл‘–хKz
{ж©бл‘F7хлжаНа–ж76PjP67+7BЛPjwбЏ`7жЏб–Џ`•7лP©–ЏK‘«7ІЏ‹НхІxалВz7.7ЎхF7жЏбЎхC7w–7©7WЏ–©‹хC7‹–ЏлЎалжjЏKPлх7лPF±хНВюх76©‹‘ННw7–х±аjлаж‘–хKC7НхлЛKх‹жхKC7Й‹‘«ЏНЏЛхKC7WхНЏ‹ЏWхKC7aPжаaPж‘–хK7х7хлxалаjхKz7®Paа7ж©ж76KPx©`жВ‹w7±PЛPжЏ7–Џjхлл‘«7Й‘жPлВC76KМw6Pлх76х7юНw«Pa‘7jЏ6K‘ж–©7лP©–ЏKЏ(7І©a–‘C7х67KЙН‘KЏa7ІЏ‹wЛлалВ7K7Џ±НP‹жх7Џ±б‘‹Н`KPНВлЏ(7жа«лх–‘7х7jЏ±Џж‘–‘7лP7x‘жжw7aPF±©жлх«7ЙЏ–ЏНхлВ7Н`ІаFz7Ы©ж7K‘л‘–P`жВ7х7Іх‹жP`жВ7ЙjPKP7ЛjЏaPІwл‹жKP7лЏKх7aажЏІ‘7лP©–ЏK‘«7aхxІ‘‹Ў‘ЙНхлPjл‘«7ІЏ‹НхІxалВz7Ы©ж7WЏja©+жВ‹w7лЏK‘F7ЙЏЛНwІ7лP7jЏНВ7ж‘«7б‘7хлю‘«7лP©–ЏK‘«7jа6©НВжPжхK7х7K‘л‘–P+7жаC7ЄЏ7aЏxлP7±©НЏ7±7лP6KPж‘7WхНЏ‹ЏW‹В–‘a7Џ‹a‘‹Наллwa7Ў‘«7jа6©НВжPжхKz7яK‘ЄPC7ЄЏ7KхІЏ±jPxP`жВ‹w7K7жP–‘«7W©лІPaалжPНВл‘«7ЙЏлwжжw«7–х±аjлаж‘–‘C7w–7хлWЏjaPЎхw7х7–аj©KPллwC7aP`жВ7aх‹Ўа7K7ЏjЛPлхблхF7Йj‘jЏІх7х7ЛjЏaPІ‹В–Џa©7x‘жжхz7ЫP–‘a7б‘лЏaC7–х±аjлаж‘–©7aЏxлP7K‘6лPб‘ж‘7w–7лP©–©7ЙjЏ7–аj©KPллw7х76KМw6Џ–767x‘KЏ`7Йj‘jЏІЏ`7K7‹©‹ЙхНВ‹жKх7х7жа«лхЎхz7ћІла767лPFKPxН‘Kхю‘«7Й‘жPлВC7лPK–ЏНЏ7w–ЏЛЏ7FІ©жВ7WхНЏ‹ЏW‹В–х7І‘‹–©‹х(7J7Ўа7Й‘жPллw7ЙjЏ7жаC7ЄЏ7жP–а7хлWЏjaPЎхwC7w–P7((7Йj‘jЏІP7&Нw7«PjP–жаj‘‹ж‘–‘7Йj‘jЏІ‘7хлWЏjaPЎхFл‘«7ЙjЏЎа‹хK7лаЏ±«хІлЏ7–ЏjЏж–Џ7jЏ6ЛНwл©ж‘7Йj‘jЏІл©7Џ‹лЏK©7K‹w–Џ(7хлWЏjaPЎх(C7P7жP–Џ`7Йj‘jЏІлЏ`7Џ‹лЏKЏ`7хлWЏjaPЎх(7+7KНP‹ж‘KP7aPжаjх(7Џ±М+–ж‘KлP76ІPжлх‹жВ7KхІЏ±jPxаллwz7элWЏjaPЎхw7K7x‘KхF7Йj‘jЏІх7лP7KхІaхл©7KхІ7лаx‘KЏ(7KхІхЛjP+7P–ж‘Kл©7jЏНВC7жЏa©7ЄЏ7±аjа7©бP‹жВ7©7–аj©KPллх7K‹хaP7x‘жж+K‘a‘7ЙjЏЎа‹Pa‘z7"PжаjхPНх‹ж‘блP7жаЏjхw7KхІЏ±jPxаллw7±Pб‘жВ7jхюаллw7лЏK‘«7ЙjЏ±Наa7лP©–‘7хC76Џ–jаaPC7жP–Џ(7–PjІ‘лPНВлЏ(7ЙjЏ±Наa‘7Йj‘jЏІЏ6лPK‹жKP7w–7Йаjа«хІ7KхІ7лаЏjЛPлхблЏ(7aPжаjх(7ІЏ7ЏjЛPлхблЏЛЏC7©7K‘–Џj‘‹жPллх7aажЏІЏНЏЛхблЏ(7Џ‹лЏK‘7ІхPНа–ж‘блЏЛЏ7aPжаjхPНх6a©z7NjЏ±НаaP7ЙЏНwЛP+7K7жхaC7ЄЏ7х‹л©+7aPжаjхwC76ІPжлP7KхІб©KPж‘C7х7aPжаjхwC7‹жKЏjалP767ж‘«7xа7PжЏaхK7х7K7жаx7бP‹7ла7KЏНЏІх+7Ўх+`76ІPжлх‹ж`z7N‘жPллwC7©7жP–‘F7‹ЙЏ‹х±7ЙЏ‹жPKНала7ЎхН–Џa7–Џл–jажлЏ7хC7ж‘a7‹Pa‘aC7южЏK«P+7ЙjЏ±Наa©7ІЏ7jхюаллwz7Јх±аjлаж‘–P7KЙj‘ж©Н76PFлwНP‹w7ІЏ‹НхІxаллwa7aа«Pлх6aхK7‹PaЏjаЛ©НwЎх(7х7‹PaЏ©ЙjPKНхллwz7¦P6Џa767ж‘aC76PН‘юP`б‘‹В7aажЏІ‘блЏ7Џ±aаxал‘a‘C7Ўх7ІЏ‹wЛлаллw76PН‘ю‘Н‘7KхІ–j‘ж‘a‘7jwІ7ЙjЏ±Наa7ІЏ7jЏ6ЛНwІ©7w–‘«7Йj‘KаН‘7Kл©жjхюлх76НPa‘7–х±аjлаж‘–‘z7®KхІЏaх‹жВ7+7ла7‹жхНВ–‘7ЙjЏІ©–жЏa7jЏ6K‘ж–©7Йj‘jЏІ‘C7‹–хНВ–‘7ЙjЏІ©–жЏa7ЛjЏaPІ‹В–ЏЛЏ7x‘жжw7Н`І‘л‘C7‹©‹ЙхНВлЏ(7ЙjPЎх7ЙЏЙаjаІлх«7ЙЏ–ЏНхлВ7Н`ІаFz7“ЏлP7+7х‹жЏжлЏ`7бP‹ж‘лЏ`7ІхwНВлЏ‹жх7Н`І‘л‘C76P7ІЏЙЏaЏЛЏ`7w–Џ(7‹жKЏj`+жВ‹w7Н`І‹В–P7Йj‘jЏІP7х7ла7aЏxа7±©ж‘7Йj‘FлwжP7ЙЏ6P7Ўх+`7Йj‘jЏІЏ`z7я–ЄЏ7K7aPю‘лP«7х7K6PЛPНх7K7лаЏjЛPлхблхF7Йj‘jЏІх7KхІЏ±jPxаллw7+7ЙP‹‘Kл‘FC7aаjжK‘F7Wх6‘–ЏJ«хaхбл‘FC7aа«Pлхбл‘F7P–ж7±а67©6PЛPНВлаллw7х7ЙjЏл‘–лаллw7K7‹©жлх‹жВ7wK‘ЄPC7ЄЏ7©6PЛPНВл`+жВ‹wC7жЏ7KхІЏ±jPxаллw7©7WЏjaх7‹KхІЏaЏ‹жх7+C7лP7І©a–©7]zГлЛаНВ‹P7ЃЙх6лPллw7K‘‹Џ–ЏЏjЛPлх6ЏKPлЏ`7aPжаjх+`7‹PaЏ(7‹а±аC7ЙjЏл‘–лаллw7K7‹©жлх‹жВC76P–Џл7jЏ6K‘ж–©7Йj‘jЏІ‘C7ЙjаІaажхK7х7wK‘Є7Џ±М+–ж‘KлЏЛЏ7‹Kхж©Ѓz7.7aPю‘лх7x7KхІЏ±jPxаллw7ла7©‹KхІЏaНалаC7жЏa©7ЄЏ7KЏлЏ76ІхF‹л`+жВ‹w7±а67©жKЏjаллw7хІаPНВл‘«7Џ±jP6хK7х7ЙЏлwжВC7P7KхІ±©KP+жВ‹w7©7K‘Іх7аНа–жj‘бл‘«7хaЙ©НВ‹хKC7‹‘ЛлPНхK7х7жzЙz7ћ‹–хНВ–‘7aPю‘лP7ла7a‘‹Н‘жВC7Ўw7ла7+7жP7WЏjaP7KхІЏ±jPxаллwC7ЄЏ7aP+7aх‹Ўа7K7ЙjЏЎа‹х7Йх6лPллw7Н`І‘лЏ`7лPK–ЏН‘юлВЏЛЏ7‹Kхж©z7P–ЏлЏaхjлЏ‹жх7ЙjЏЎа‹©7KхІЏ±jPxаллw7K7aPю‘лх7K‘6лPбP`жВ‹wC7лP‹PaЙаjаІC76P–ЏлЏaхjлЏ‹жwa‘7KхІЏ±jPxаллw7ІхF‹лЏ‹жх7©7‹KхІЏaЏ‹жх7Н`І‘л‘C7жЏa©7ЄЏ7aPю‘л©7‹жKЏj`+7Н`І‘лP767aажЏ`7±хНВю7жЏблЏЛЏ7KхІЏ±jPxаллw7ІхF‹лЏ‹жхC7х7ла7aPю‘лP7‹PaP7ЙЏ7‹Џ±х7KхІ±‘KP+7ІхF‹лх‹жВC7P7Н`І‘лP7KхІ±‘KP+7((76P7ІЏЙЏaЏЛЏ`7aPю‘л‘z7ЫЏa©7KхІЏ±jPxаллw7ІхF‹лЏ‹жх7aPю‘лЏ`7+7‹–НPІал‘a7аНаaалжЏa7KхІЏ±jPxаллw7ІхF‹лЏ‹жх7Н`І‘лЏ`z7NЏwKP7–х±аjлаж‘бл‘«7Йj‘‹жjЏ(K7Йj‘KЏІ‘жВ7ІЏ7K‘л‘–лаллw7ла7лЏKЏ(7WЏja‘7KхІЏ±jPxаллwC7P7лЏKЏ(7НPл–‘C7ЄЏ7лP‹НхІ©+7KхІЏ±jPxаллw7Йj‘jЏІ‘7Н`І‘лЏ`z7ЈЏл–jаж‘6PЎхw7ЙЏлwжжw7Bюж©бл‘F7хлжаНа–ж•z7.7ЙЏлwжжw7Bюж©бл‘F7хлжаНа–ж•7K–НPІP+жВ‹w7jх6л‘F76aх‹ж7J7KхІ7K‘6лPллw7хлжаНа–ж©7K7Гћ"C7ЄЏ7K‘jхю©`жВ7НЏЛхблх7б‘7лPKхжВ7±©ІВJw–х7Џ±б‘‹Н`KPНВлх76PІPбхC7ІЏ7KхІла‹аллw7ІЏ7хлжаНа–ж©PНВл‘«7Н‘юа7ж‘«7‹‘‹жаaC7ЄЏ7K‘jхю©`жВ7Kа‹В7–ЏaЙНа–‹76PІPбC76ІхF‹л`KPл‘«7Н`І‘лЏ`C7б‘7Єа7±хНВю7ю‘jЏ–©7(«л`7‹©–©Йлх‹жВz7"‘7ЙЏ‹жPjP+aЏ‹w7K‘ІхН‘ж‘7жЏF76aх‹ж7ЙЏлwжжw7Bюж©бл‘F7хлжаНа–ж•C7ЄЏ7лPF±хНВюЏ`7aхjЏ`7KхІЙЏKхІP+7jаPНВл‘a7ІЏ‹НхІxаллwa7©7ЎхF7Џ±НP‹жхz7я–7KхІ6лPбPНЏ‹wC7©7ІЏ‹НхІxаллw«76х7юж©блЏЛЏ7хлжаНа–ж©7©балх7KхІKЏНх–P`жВ‹w7KхІ7ЙЏІх±лЏ‹жх7ЙjЏЎа‹хKC7ЄЏ7KхІ±©KP`жВ‹w7K7жа«лхблхF7‹‘‹жаaх7б‘7K7jаPНх6ЏKPл‘«7ла`7ЙjЏЛjPaP«C767a‘‹Наллwa7Н`І‘л‘z7я–ЄЏ7‹‘‹жаaP7K‘jхю©+76PІPбхC7ЄЏ7Н`І‘лP76K‘бPFлЏ7K‘jхю©+76P7ІЏЙЏaЏЛЏ`7‹KЏЛЏ7хлжаНа–ж©C7жЏ7a‘7aP+aЏ7‹ЙjPK©7х67‹‘‹жаaЏ`7юж©блЏЛЏ7хлжаНа–ж©zДешифрований текст методом прямої підстановки при невідомому ключу
Nвогдеми скбасночо срітк йивоуо ріломі¶ еуодочіп, доуадзні рі.ни, еуономібна явівра міх аюолом і уваєнами ”тветзочо срітк• і тфлфф энйочо волк явогдеми беуацтз нас яви яевеюолі ло ”іншовмажі.ночо сксяідзстра• “ тауомк, пу .очо ілеадіьорано воькміцтз артови уонжеяжієф "и рхе яваутибно ьМпскради, що твега вогити, аде не ьархли ьнаїмо пу “ тогто ьадийаїтзсп рілувитим яитаннп теюнодочі.ф Јвім точо, непсне яитаннп яво яевегклорк сріломості дцле. лдп норочо тияк мисденнпф Що х стоскїтзсп явогдем ”іншовмажі.ночо сксяідзстра•, те ткт уідзуа чдогадзнию ї явибиноц гідзй лвігниюф Nевйа ь нию “ явинжияора нериьнабеністз сктності іншовмажіє, пу матевіадзноє, тау і ь шідосошсзуоє тобуи ьовкф энйа “ рьаїмоліп теюніуи і явиволи О би ї яевйа яволорхеннпм лвкчоє би єє антияоломф %авейті, тветп “ рьаїмини теюніуи, іншовмажіє і дцлини “ би надехно дцлині явистосоркратисп ло гквюдиро ьвостацбочо йурадк іншовмажіє і ствімуо міндирі. теюніжі би х неогюілно ьачадзмкрати воьритоу і яойкуати інйи. йдпюф . явинжияі, яитаннп яво гцвоуватибно“іншовмажі.нк системк і тотадзноє уонтводі ї яоюілним ріл жию твзоюф lі яитаннп ще беуацтз сроєю лосділниуірф
{ткбни. інтедеут ьаваь ї ”чавпбоц тобуоц• накуорию лосділхензф . жі. тобжі, пу к шоуксі, суонжентворані на.гідзйі ьксиддп уігевнетиуір, дінчрістір, ясиюодочір, шідосошір, математиуір і інхеневірф ®аме ткт ьрахкцтзсп гачато уовіннию яитанз, ьрМпьані ьі йдпюами воьритук накуороє лкмуи, іь рядиром лоспчненз р огдасті огбисдцрадзноє теюніуи і воготиуи на хиттп ма.гктнію яоуодінз дцле.ф Ыкт риниуацтз і лістацтз явара чвомалпнстра норі метоли накуорию міхлисжиядінавнию лосділхензф Ыкт шовмкїтзсп нори. яочдпл на водз тию би інйию накуорию веькдзтатір і риниуаї те, що мохна гкдо г наьрати шідосошсзуим осмисденнпм жию веькдзтатірф ярища, що рілогвахацтзсп р тауию шкнламентадзнию яонпттпю уігевнетиуи, пу іншовмажіп і уевкраннп, мацтз місже р овчанібні. явиволі і чвомалсзуомк хиттіф Ыауим бином, уігевнетиук мохна риьнабити пу накук яво уевкраннп і ьрМпьоу ь хироц явиволоц р сксяідзстрі і теюніжіф ћлне ь на.рахдирійию яитанз, наруодо пуочо .лктз шідосошсзуі лисуксіє “ же яитаннп яво те, що тауе іншовмажіп, пуа єє явивола &дп юаваутевистиуи явиволи іншовмажі.нию явожесір неогюілно уовотуо воьчдпнкти явиволнк оснорк рспуоє іншовмажіє, а тауоц явиволноц оснороц іншовмажіє ї рдастира матевіє огМїутирна ьлатністз рілогвахеннпф эншовмажіп р хирі. явиволі на рілмінк ріл нехироє рілічваї аутирнк водз, томк що геве кбастз к уевкранні рсіма хиттїрими явожесамиф "атевіадістибна теовіп рілогвахеннп габитз війеннп норию явогдем накуи і, ьоувема, тауоє уавлинадзноє явогдеми явиволоьнарстра пу яевеюіл ріл неовчанібноє матевіє ло овчанібночо, к риуовистанні метолодочібноє оснори ліадеутибночо матевіадіьмкф Nвогдема яодпчаї р тім, що існкї матевіп, ьлатна рілбкрати, і матевіп, стровена ь тию хе атомір і р тех бас не родолії жіїц ьлатністцф Nитаннп, к тауи. сяосіг яостардене жідуом уонуветно і, тим самим, йторюаї явогдемк ло війеннпф Јігевнетиуа рявиткд ьа.нпдасп лосділхеннпм меюаніьмір самовечкдпжіє і самокявардіннпф ¦аьом ь тим, ьадийацбисз метолибно огмехеними, жі лоспчненнп ьадийиди рілувитими впл явогдем ло воьчдплк пуию явиреди рнктвійні ьдами уігевнетиуиф ®ріломістз ї не стідзуи яволкутом воьритук явиволи, суідзуи яволкутом чвомалсзуочо хиттп дцлини, сксяідзноє яважі яояевелнію яоуодінз дцле.ф “она ї істотноц бастиноц ліпдзності дцлини, ьа лояомочоц пуоє стровцїтзсп дцлсзуа явивола і не мохе гкти яви.нпта яоьа жіїц явиволоцф яущо р майинаю і рьачаді р неовчанібні. явиволі рілогвахеннп ї яасирни., мевтри. шіьиуо“юімібни., меюанібни. аут геь кьачадзненнп і явониуненнп р сктністз прища, що кьачадзнцїтзсп, то рілогвахеннп к шовмі сріломості ї, на лкмук ]фГнчедзса Ѓяіьнаннп рисоуоовчаніьораноц матевіїц самоє сеге, явониуненнп р сктністз, ьауон воьритук явиволи, явелметір і прищ огМїутирночо сріткЃф . майині х рілогвахеннп не ксріломдене, томк що роно ьлі.снцїтзсп геь ктровеннп ілеадзнию огваьір і яонптз, а рілгкраїтзсп к рилі едеутвибнию імякдзсір, сичнадір і тфяф ћсуідзуи майина не мисдитз, жп не ї та шовма рілогвахеннп, що маї місже р явожесі яіьнаннп дцлиноц наруодийнзочо сріткф ауономівності явожеск рілогвахеннп р майині риьнабацтзсп, насамяевел, ьауономівностпми рілогвахеннп лі.сності к сріломості дцлини, томк що майинк стровцї дцлина ь метоц гідзй тобночо рілогвахеннп лі.сності, і не майина сама яо согі рілгираї лі.сністз, а дцлина рілгираї єє ьа лояомочоц майиниф Ыомк рілогвахеннп лі.сності майиноц ї судаленим едементом рілогвахеннп лі.сності дцлиноцф Nопра уігевнетибнию явиствоєр явиролитз ло риниуненнп не нороє шовми рілогвахеннп, а нороє дануи, що насділкї рілогвахеннп явиволи дцлиноцф Јонуветиьажіп яонпттп ”йткбни. інтедеут•ф . яонпттп ”йткбни. інтедеут• рудалаїтзсп віьни. ьміст “ ріл риьнаннп інтедеутк р Гћ", що ривійкцтз дочібні би нарітз гклз“пуі огбисдцрадзні ьалабі, ло рілнесеннп ло інтедеуткадзнию дийе тию систем, що ривійкцтз ресз уомядеус ьалаб, ьлі.снцранию дцлиноц, би ще гідзй йивоук єюнц скукяністзф "и яоставаїмосп рилідити то. ьміст яонпттп ”йткбни. інтедеут•, що на.гідзйоц мівоц ріляорілаї веадзним лосділхеннпм к жі. огдастіф яу рільнабадосп, к лосділхеннпю ьі йткбночо інтедеутк кбені рілродіуацтзсп ріл яолігності явожесір, що рілгкрацтзсп р теюнібні. системі би р веадіьоранию нец явочвамаю, ь мисденнпм дцлиниф яущо система ривійкї ьалабі, що дцлина ьриба.но ривійкї ьа лояомочоц срочо інтедеутк, то ми маїмо сяварк іь системоц йткбночо інтедеуткфТекст програми
Файл Umain.h
//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "UMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "dxfColorButton"
#pragma resource "*.dfm"
TMain *Main;
FILE *IF, *OF, *KF;
class FreqTable
{
public:
int NumChars;
unsigned char Chars[256];
unsigned long Freqs[256], TotalFreq;
FreqTable(void)
{
NumChars = 0;
}
void Init(void)
{
NumChars = 0;
}
void Add(unsigned char ch)
{
for(int i = 0;i < NumChars;i++)
if(Chars[i] == ch)
{
Freqs[i]++;
return;
}
Chars[NumChars] = ch;
Freqs[NumChars] = 1;
NumChars++;
}
void Sort(void)
{
unsigned char ch;
unsigned long l;
int i;
bool b = true;
while(b)
{
b = false;
for(i = 1;i < NumChars;i++)
if(Freqs[i-1] < Freqs[i])
{
ch = Chars[i-1];
Chars[i-1] = Chars[i];
Chars[i] = ch;
l = Freqs[i-1];
Freqs[i-1] = Freqs[i];
Freqs[i] = l;
b = true;
}
}
}
void Show(TRichEdit *Memo)
{
char ch;
Memo->Lines->Clear();
TotalFreq = 0;
for(int i = 0;i < NumChars;i++)
{
ch = (char)Chars[i];
if(ch == 0 || ch == 13 || ch == 10) ch = ' ';
Memo->Lines->Add(" '\\" + AnsiString((int)Chars[i]) + "' ('" +
AnsiString(ch) + "') = " + AnsiString(Freqs[i]));
TotalFreq += Freqs[i];
}
}
void SaveToFile(AnsiString FileName)
{
FILE *f = fopen(FileName.c_str(),"wb");
if(f == NULL)
{
ShowMessage("Can't create table file");
return;
}
fwrite(&NumChars, 1, 1, f);
fwrite(Chars, NumChars, 1, f);
fwrite(Freqs, NumChars, 4, f);
fclose(f);
}
void LoadFromFile(AnsiString FileName)
{
FILE *f = fopen(FileName.c_str(),"rb");
if(f == NULL)
{
ShowMessage("Can't open table file");
return;
}
fread(&NumChars, 1, 1, f);
fread(Chars, NumChars, 1, f);
fread(Freqs, NumChars, 4, f);
fclose(f);
}
}Table1, Table2;
//---------------------------------------------------------------------------
__fastcall TMain::TMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMain::DoActionClick(TObject *Sender)
{
IF = OF = KF = NULL;
IF = fopen(InputFile->Caption.c_str(), "rb");
if(IF == NULL)
{
ShowMessage("Can't open input file");
return;
}
fseek(IF, 0, 2);
unsigned long i,j, Length = ftell(IF), KL;
unsigned char ch;
fseek(IF, 0, 0);
// Частотний аналіз
Table1.Init();
for(i = 0;i < Length;i++)
{
fread(&ch, 1,1, IF);
Table1.Add(ch);
}
Table1.Sort();
Table1.Show(Memo1);
// індекс відповідності (ІС)
double IC = 0.0, PF;
for(i = 0;i < Table1.NumChars;i++)
{
PF = (double)Table1.Freqs[i]/Table1.TotalFreq;
IC += PF*PF;
}
ICLabel->Caption = "IC = " + AnsiString(IC);
PageControl->ActivePageIndex = 0;
int KeyTable[256];
unsigned char ch1, ch2;
for(i = 0;i < 256;i++) KeyTable[i] = -1;
fseek(IF, 0, 0);
if(!RBFreqAnalisys->Checked)
{
OF = fopen(OutputFile->Caption.c_str(), "