Реферат Цифрова підпис

Страница 1 из 3 | Следующая страница

Цифрова підпис: принципи роботи

Контрольні суми, контроль CRC, хэширование і цифрова підпис – базові кошти аутентифікації при цифровій передачі даних. Уявіть собі ситуацію: вам відправили електронною поштою документ з конфіденційної інформацією з фінансуванням наступного року. Вам потрібна цілковита у тому, який отримав файл скоєно ідентичний оригіналу і що у ньому цифри були змінені "їсти дорогою". Кілька скоригованих значень можуть коштувати вашої фірмі круглої суми. Підозра, що він "їсти дорогою" було фальсифіковано з'являється коли деякі цифри не сходяться, а електронна передача велася через зовнішню поштову систему. Як переконається у цьому, який отримав вами документ - абсолютна копія відправленого вам оригіналу?

Розглянута ситуація так штучна, як здається з першого погляд. У добу, коли цифрова комерція швидко стає реальністю, довіру користувачів до такого роду системам повністю залежить від безпеки таких транзакцій. Якщо відіслати електронної пошти або на гнучкому диску файл з електронною таблицею, хоч чином одержувач дізнається у тому, що ніхто, через кого цю інформацію пройшла, не вніс жодних змін? Якщо переслати через мережу Internet номер своєї кредитної картки, те, як адресат переконається у цьому, що саме ви зробили це замовлення?

Рішення всіх цих питань доведеться шукати у спеціальній розділі математики, яку називають криптографією. Часто під цим терміном мається на увазі звичайне кодування, проте область криптографії не обмежена лише теорією шифрування даних. Вона також охоплює питання, пов'язані з подменностью цифрових даних - як перевірити достовірність цифрових даних, і як у аналогії з рукописної підписом на папері проставити візу на електронних документах, маючи у своєму розпорядженні лише послідовності нулів і одиниць. У статті розглядаються ключові поняття аутентифікації цифрової інформації - від найпростіших методів верифікації

цілісності цифрових даних до розгляду проекту державного стандарту США - Digital Signature Standard, і навіть основні Правила оформлення цифрового електронного підпису.

Контрольні суми

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

 Checkssum = Total % (MaxVal + 1)

де Total - підсумкова сума, розрахована за вхідним даним, і MaxVal – максимально дозволене значення контрольної суми, заданий заздалегідь.

Припустимо, документ, вміст якого доведеться верифікувати, є таку послідовність величин, довжиною 10 байт:

 36 211 163 4 109 192 58 247 47 92

Якщо контрольна сума 1 байт величина, то максимальну кількість, яку вона може утримувати, одно 255 Для наведеного вище документа сума усіх її чисел одно

1159. Отже, 8-разрядов контрольної суми міститимуть залишок від розподілу числа 1159 на 256, тобто 135. Якщо контрольна сума, розрахована відправником документа, дорівнювала, скажімо, 246, а після отримання вона не має значення 135, отже, інформація піддалася зміни. Метод контрольних сум - це найбільш проста форма цифровий ідентифікації (digital fingerprint); тобто величина, отримана внаслідок підрахунку вмісту деяких інших даних, змінюється при корекції даних, основі яких він отримано. Використання алгоритму контрольних сум розпочався ще біля підніжжя обчислювальної техніки і досі далеких часів ячмінь базове під час перевірки на помилки у деяких версіях вельми поширеного протоколу передачі XMODEM.

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

І що ще гірше - можна змінити окремі вересня документі та підігнати інші в такий спосіб, щоб забезпечити колишнє значення контрольної суми. З використанням для контрольних сум 8-разрядной перемінної можливість, що контрольні суми двох випадково вибраних послідовностей даних будуть однакові, дорівнює 1/256. При збільшенні довжини перемінної під контрольну суму до 16 чи 32 розрядів, ймовірність збігів зменшується, проте це механізм однаково занадто чутливий до можливим помилок, щоб забезпечити високий рівень довіри до представлених даним.

Контроль CRC

Більше досконалий спосіб цифровий ідентифікації деякою послідовності даних - це обчислення контрольного значення її циклічного надлишкового коду (cyclic redundancy check - CRC). Алгоритм контролю CRC вже протягом багато часу широко використовують у системах мережевих адаптерів, контролерів жорсткого диска та інших пристроїв для перевірки ідентичності вхідний і вихідний інформації.

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

Механізм CRC грунтується на полиномиальном розподілі, де кожен розряд деякою порції даних відповідає одному коефіцієнта великого полиномиального висловлювання. Нагадаємо, що полиномом називається математичне вираз, представлене так:

 f(x) = 4x3 + x2 + 7

На виконання розрахунків контролю CRC поліном, що становить байт даних із значенням 85 (8-разрядный двоїчний еквівалент якого - 01010101) така:

 0x7 + 1x6 + 0x5 + 1x4 + 0x3 + 1x2 + 0x1 + 1x0

чи навіть

 x6 + x4 + x2 + 1

Ключовим принципом обчислень для механізму CRC і те, що операції множення і розподілу цих полиномов виконуються точно як і, і з звичайними числами. Якщо певний "магічний" поліном (коефіцієнти якого одержані відповідність до що використовуються алгоритмом CRC) розділити на поліном, що становить якусь послідовність даних, то результаті виходить полином-частное і полином-остаток. Друга з цих значень є підставою до створення контрольного параметра CRC. Також, як й у контрольних сум, параметром CRC непотрібен велике місце (зазвичай їх довжина становить 16 чи 32 розряду); проте за порівнянню із нею, надійність виявлення невеликих змін вхідний інформації тепер значно вища. Якщо деякому величезному блоці даних лише одне розряд став інакшим, те й контрольний параметр CRC зі 100-відсоткової ймовірністю також мати інше значення. Якщо ж зміняться два розряду, то можливість виявлення помилки при довжині параметра CRC в 16-разрядов, становить понад 99, 99%. На відміну від контрольних сум метод CRC зможе розпізнати всякі фокуси з перестановкою двох байт або з додаванням 1 до жодного з неї і відніманням 1 з іншого.

Механізм CRC надзвичайно корисним для перевірки файлів, загружаемых із мережних інформаційних служб. Якщо хтось повідомляє мене, що передана йому через мережу ZD Net утиліта раптом без видимої причини перестає працювати, то відразу ж я прошу його створити її архівний файл з допомогою програми PKZIP і набрати команду PKZIP -V для перегляду створеного . ZIP файла. Серед інших параметрів він побачить також 32-разрядное значення параметра CRC, розраховане програмою PKZIP для несжатого файла. Якщо розрахований значення параметра CRC для gjkextyyjq утиліти не збігається

багатозначно для вихідного варіанта файла, отже, за мінімального завантаження його відбулася необнаруженная помилка передачі (таке інколи трапляється).

Можна організувати власний контроль CRC для ідентифікації файлів; цього доведеться переписати через службу PC Magazine Online файл CRC. COM. (Він перебуває у бібліотеці Tutor форуму Utilities/Tips служби ZD Net/CompuServe й у файлі V15N07. ZIP (на сервері за адресою http://www. pcmag. com). CRC. COM - це утиліта DOS, якої у ролі вхідного параметра вказується ім'я файла. З котра міститься у ньому інформації вона розраховує 32-разрядное значення контролю CRC. У конкурсній програмі використаний відомий алгоритм розрахунку параметра CRC-32, застосовуваний PKZIP і мережевих адаптерах Token-Ring фірми IBM. Цей алгоритм вирізняється високим швидкодією (вихідний текст повністю написано мовою ассемблера;

виробляється буферизация при чтении/записи з диска; чудово реалізований алгоритм розрахунку CRC-32 - усе це дозволяє скоротити до мінімуму обсяг вироблених обчислень) і обробить файли будь-якого розміру. Тепер при пересилання файлів через модем утиліта CRC. COM зможе надати вам неоціненну послугу - дати впевненість, що передано без спотворень.

Отримавши через мережу файл CRC. COM, відразу ж перевірте саме цей файл, набравши в рядку DOS команду:

 CRC CRC. COM

Якщо отримане значення параметра CRC не одно 86C23FA, отже файл слід завантажити знову.

Алгоритми хэширования

Проблемою є те, що й контроль з допомогою 32-разрядного значення CRC має певними вадами - він стійко виявляє випадкові зміни у вхідний інформації (наприклад, що у результаті збоїв під час передачі даних), проте недостатньо надійний у разі навмисних дій. Якщо ідентифікації деякого файла ви використовуєте його 32-разрядный параметр CRC, то тут для когось непогані складно з допомогою комп'ютера створити зовсім інший файл з тим самим значенням CRC.

Вищого надійності, аніж за контролі CRC, можна досягти використанні односторонніх алгоритмів хэширования; результатом його роботи є особливі "хэшированные" значення. Під терміном "односторонні" розуміється таке: маючи на вході А, можна без особливих зусиль дістати виході У, а й зробити зворотне - тобто з У отримати А - неможливо, чи, у разі, практично неможливо. Важлива відмінна риса будь-якого хорошого алгоритму хэширования у тому, що які генеруються з її допомогою значення настільки унікальні і трудноповторимы, що навряд чи хто з допомогою серії суперкомп'ютерів Cray і витративши дуже багато часу, зможе знайти два набору вхідних даних, мають однакові значення хэширования. Зазвичай, ці параметри займають щонайменше 128 розрядів. Чим більший їх довжина, важче відтворити вхідний набір даних, тобто знайти послідовність, що забезпечує відповідний результат.

Серед односторонніх алгоритмів хэширования найбільшої популярністю користуються дві з них: алгоритм MD5 (message digest), розроблений професором Массачусетського технологічного інституту Роном Ривестом (Ron Rivest) (одне із авторів популярної криптосистемы з ключем загального користування RSA), і алгоритм Secure Hash Algorithm (SHA), створеного спільними зусиллями Національного інституту з по стандартизації, та технологічних розробок (NIST) і обласного Управління національної стратегії безпеки США (NSA). Результат аналізу послідовності вхідних даних із допомогою алгоритму MD5 - 128-разрядный цифровий ідентифікатор, а під час використання алгоритму SHA - 160-разрядное значення. З огляду на, що поки що зірвалася підібрати ключ до жодного з названих алгоритмів, вважатимуться, що відновлення вихідних даних із деякому хэшированному значенням, що є результатом роботи алгоритму SNA або за деякому коефіцієнта алгоритму MD5 нереально. Отже, якщо ви відправили якийсь файл і ідентифікатор, отриманих у результаті застосування щодо нього алгоритму MD5 чи SHA, і коли ви виконали з нею хоча б алгоритм хэширования й вашу результат припала на вихідним значенням, точно можна бути впевненим, що ухвалений вами файл не піддався спотворень.

Алгоритм MD5

Термінологія

У разі "word" є 32-х бітної величиною, "byte" - 8-місячного бітна величина. Послідовність біт повинна інтерпретуватися так само як і послідовність байт, де кожна послідовна група восьми біт інтерпретується як байт з старшим (найбільш значущою) битому кожного байта наступним в послідовності першим. Подібно послідовності байт повинна інтерпретуватися і послідовність 32-бітних слів.

Запис x_i означає "x sub і" (т. е. x з індексом і). Якщо деяке вираз використовують як індекс, воно береться в фігурні дужки, наприклад x_{i+1}. Символ " ^ " використовується для операцій спорудження до рівня, т. е. x^i слід розуміти, як x певною мірою і.

Символ "+" позначає операцію складання слів (т. е. складання по модулю 2^32). Далі x << s означатиме обчислення нового 32-х бітного значення x шляхом циклічного зсуву (обертання) попереднього значення x на s біт вліво. not(x) - поразрядная операція заперечення , x v y - поразрядное ИЛИ(OR) операндов x і y , x xor y – поразрядное який виключає ИЛИ(XOR) операндов x і y , і xy - поразрядное И(AND) операндов x і y.

Короткий опис алгоритму MD5

Спочатку допускаємо, що маємо на вході повідомлення з b-бит, і ми хотілося б знайти Message Digest цієї послідовності біт. Кількість b є довільним неотрицательным цілим; b то, можливо рівним нулю, він обов'язково має бути множником 8, і може бути довільно великим. Уявімо послідовність біт повідомлення, як:

m0 m1 m2 . . . . . . m{b-1}

Наступні п'ять етапів виконуються для підрахунку Message Digest повідомлення.

Етап 1. Приєднання що заповнюють (додаткових) битов.

Повідомлення розширюється те щоб його довжина (в бітах) збігалася з 448, по модулю 512. Доповнення завжди виконується, навіть якщо довжина повідомлення - вже збігаються з 448 по модулю 512. Доповнення виконується так: одиночний "1" біт додається до повідомлення, і далі "0" біти додаються отже довжина в бітах заповнюваного повідомлення відповідає 448 по модулю 512. У випадку, один біт і максимум 512 біт додається.

Етап 2. Додавання довжини

64-битное уявлення вхідний послідовності b (довжина повідомлення перед розширенням додатковими бітами) приєднується до результату попереднього етапу. Малоймовірно, що довжина b буде більше, ніж 264 тому

Страница 1 из 3 | Следующая страница

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

  • Реферат на тему: Технічні кошти обробки даних
    Огляд і класифікація технічних засобів. Диалоговый режим обробки. Де- і централізований,
  • Реферат на тему: Струйный принтер Epson
    Цілісність і подільність. Зв'язки і організація. Інтеграційні якості. Функціональне опис.
  • Реферат на тему: Устройства записи інформації
    Оптическая технологія. Накопичувачі на CD. Міжнародний стандарт ISO-9660. Спецификация CD-I.
  • Реферат на тему: Створення WEB
    Створення вузла Інтернет чи интрасети. Заповнення серверу Web. Иерархическая організація. Линейная
  • Реферат на тему: Технологія Macromedia Flash
    Огляд засобів і методів і розробити Інтернет додатків. CGI- сценарії і естонську мови PERL. Огляд

Навігація