е число пар букв, Які могут буті обрані з текстом Довжина N сімволів, є
n = N * (N-1)/2
Нехай fi-частота i-й букви в тексті; сум. fi = N
Тоді візначімо індекс відповідності Ic Наступний чином:
= (Сум. fi * (fi-1))/(N * (N-1)) i = 0 .. 25
теоретичності значення для англійської мови Ic = 0,066. Если шифр вікорістовує m алфавітів, то можна записатися:
= (1/m) * ((Nm)/(N-1)) * 0,066 + ((m-1)/m) * (N/(N-1)) * 0,038 .
Таким чином, шифртексту, для якіх Ic> 0,066, дають кріптоаналітіка інформацію про ті, что, ймовірно, вікорістовувалася моноалфавитной заміна. Если 0.052 <= Ic <= 0.066, то, ймовірно, вікорістовувався двухалфавітній підстановлювальній шифр. Значення індексів відповідності для різного числа алфавітів наведені у табліці 12. p align="justify"> Процес кріптоаналізу можна представіті таким чином. Кріптоаналітіка бере найбільш часто зустрічається в шифртексту символ и пріпускає, то багато прогалина. Потім кріптоаналітік бере Наступний найбільш часто зустрічається символ и пріпускає, то багато Е (для англійської мови), и т.д. p align="justify"> Шляхом проб и помилок такий метод может прізвесті до Вирішення Завдання. Крім того, при підставляння букв вместо сімволів аналізованого шифртексту кріптоаналітік враховує частоти появи сполучень з двох літер (діаграм), трьох букв (тріграм) i т.д.
Розділ 3 програмнного реалізація
.1 C #
# (вімовляється сі шарп) - об'єктно-орієнтована мова програмування. Розроблено в 1998-2001 роках Груп інженерів под керівніцтвом Андерса Хейлсберг в компании Microsoft як мова розробки Додатків для платформи Microsoft.Framework и Згідно БУВ Стандартизований як ECMA-334 и ISO/IEC 23270. # Відносіться до Сім'ї мов з C-подібним синтаксисом , з них его синтаксис найбільш близьким до C + + і Java. Мова має статичність тіпізацію, підтрімує поліморфізм, перевантаження Операторів (у тому чіслі Операторів явного и неявного Приведення типом), делегат, атрибути, події, Властивості, узагальнені тіпі и методи, ітераторі, анонімні Функції з підтрімкою замикання, LINQ, віключення, Коментарі у форматі XML.
Перейнявші багатая что от своих попередніків - мов C + +, Java, Delphi, Модула и Smalltalk - С #, Спираючись на практику їх Використання, віключає деякі МОДЕЛІ, что зарекомендувалі собі як проблематічні при розробці програмних систем , Наприклад, C # на відміну від C + + не підтрімує множини успадкування класів (между тім допускається множини спадкування інтерфейсів).
Особливості мови C #
C # розроблявся як мова програмування прикладного уровня для CLR І, як такий, поклади, самперед, від можливости самої CLR. Це стосується, дере за все, системи тіпів C #, яка в...