Проблема аутентифікації даних і блокові шифри. b> p>
Дана стаття є продовженням серії статей автора про реалізаціях і використанні
Російського стандарту шифрування [1,2,3] і про архітектуру і режимах використання блокових шифрів [4], і присвячена проблемам
підтвердження достовірності і авторства повідомлень. Стаття була написана восени 1995 року - майже три роки тому, і
підготовлена для публікації в журналі «Монітор», де у автора вийшли 2 статті з криптографії. Проте з різних причин
стаття тоді не була опублікована - спочатку через брак часу на її остаточну доведення і підготовку кодів-прикладів до статті, а потім через
закриття «Монітору». p>
Зміст b> p>
Вступ .............................................. .................................................. ......................................... 2 p>
1. Завдання аутентифікації даних ............................................... ................................................ p>
2. Контроль незмінності масивів даних .............................................. ............................... p>
2.1. Завдання імітозащіти даних ............................................... .............................................. p>
2.2. Підходи до контролю незмінності даних ............................................. ...................... p>
2.3. Вироблення коду автентифікації повідомлень .............................................. .................... p>
2.4. Вироблення коду виявлення маніпуляцій .............................................. ...................... p>
3. Цифровий підпис на основі традиційних блокових шифрів ......................................... p>
3.1. Що таке цифровий підпис .............................................. ............................................. p>
3.2. Базова ідея Діффі і Хеллмана ............................................. ........................................ p>
3.3. Модифікація схеми Діффі-Хеллмана для підпису бітових груп ........................ p>
3.4. Схема цифрового підпису на основі блочного шифру ........................................... ...... p>
Висновок .............................................. .................................................. ................................... 24 p>
Література .............................................. .................................................. .................................... 24 p>
b>
Введення b> p>
Наш зовсім вже близький до свого завершення століття з повним правом може вважатися століттям тотальної інформатизації
суспільства - роль інформації в сучасному світі настільки велика, що інформаційна індустрія стала однією з провідних галузей наших днів, а
одержали величезне поширення пристрої для обробки цифрових даних - комп'ютери - є одним із символів нашої цивілізації. Інформація, представлена в самих різних
формах, подібно до інших товарів виробляється, зберігається, транспортується до споживача, продається, купується нарешті споживається, старіє, псується,
, тощо. Протягом життєвого циклу інформаційні масиви можуть піддаватися різним небажаним для їх
споживача впливів, проблемам боротьби з якими і присвячена ця стаття. p>
Так як інформація має нематеріальний характер, масиви даних не несуть на собі жодних відбитків, за
яким можна було б судити про їхнє минуле - про те, хто є автором, про час створення, про факти, часу і авторів внесених змін. Модифікація інформаційного масиву не
залишає відчутних слідів на ньому і не може бути виявлена звичайними методами. «Сліди модифікації» в тій чи
іншій формі можуть бути присутніми тільки на матеріальних носіях інформації - так, спеціальна експертиза цілком здатна встановити, що сектор X b> на певній дискеті був записаний пізніше за всіх
інших секторів з даними на цій же доріжці дискети, і ця запис проводився на іншому дисководі.
Вказаний факт, будучи встановленим, може, наприклад, означати, що в дані, що зберігаються на дискеті, були внесені зміни. Але після того, як ці дані будуть переписані на інший
носій, їх копії вже не будуть містити ніяких слідів модифікації. Реальні комп'ютерні дані за час своєї
життя багаторазово змінюють фізичну основу вистави і постійно кочують з носія на носій, в силу чого їх не обнаружімое спотворення не представляє серйозних
проблем. Оскільки створення і використання інформаційних масивів практично завжди розділені в часі
та/або в просторі, у споживача завжди можуть виникнути обгрунтовані сумніви в тому, що одержаний ним масив даних створено за потрібне джерелом і
при тому в точності таким, яким він дійшов до нього. p>
Таким чином, у системах обробки інформації крім забезпечення її секретності важливо гарантувати
наступні властивості для кожного оброблюваного масиву даних: p>
справжність b> - він прийшов до споживача саме таким, яким був створений джерелом і не
зазнав на своєму життєвому шляху несанкціонованих змін; p>
авторство b> - він був створений саме тим джерелом, яким передбачає споживач. p>
Забезпечення системою обробки цих двох якостей масивів інформації і становить завдання їх аутентифікації b>,
а відповідна здатність системи забезпечити надійну аутентифікацію даних називається її автентичністю b>. p>
1.
Завдання аутентифікації
даних.
На перший погляд може здатися, що дана задача вирішується простим шифруванням. Дійсно, якщо масив даних зашифровано за використанням
стійкого шифру, такого, наприклад, як ГОСТ 28147-89, то для нього практично завжди буде справедливо наступне: p>
в нього важко внести зміни осмисленим чином, оскільки зі ступенем
ймовірності, незначно відрізняється від одиниці, факти модифікації зашифрованих масивів даних стають очевидними після їх розшифрування --
ця очевидність виражається в тому, що такі дані перестають бути коректними для їх інтерпретатора: замість тексту російською мовою з'являється нісенітницю,
архіватори повідомляють, що цілісність архіву порушена і т.д.; p>
тільки володіють секретним ключем шифрування користувачі системи можуть виготовити
зашифроване повідомлення, таким чином, якщо до одержувача приходить повідомлення, зашифроване на його секретному ключі, він може бути впевненим у його авторство,
тому що крім нього самого тільки законний відправник міг виготовити це повідомлення. p>
Тим не менше, використання шифрування в системах обробки даних саме по собі не здатне забезпечити їх автентичності
з наступних причин: p>
1. Зміни, внесені до зашифровані дані, стають очевидними після розшифрування тільки в разі великої надмірності вихідних
даних. Ця надмірність має місце, наприклад, якщо масив інформації є текстом на будь-якому людському
мовою. Проте в загальному випадку ця вимога може не виконуватися - якщо випадкова модифікація даних не робить
їх неприпустимим для інтерпретації з скільки-небудь значною часткою ймовірності, то шифрування масиву не забезпечує його справжності. Говорячи мовою криптології b>, автентичність
і таємність суть різні властивості криптосистем. Або, простіше: властивості систем
обробки інформації забезпечувати секретність і справжність оброблюваних даних у загальному випадку можуть не збігатися. p>
2. Факт успішного (в сенсі попереднього пункту) розшифрування зашифрованих на таємному ключі даних може підтвердити їх авторство тільки в
очах самого одержувача. Третя сторона не зможе зробити на підставі цього однозначного висновку про авторство
масиву інформації, тому що його автором може бути будь-який з власників секретного ключа, а їх як мінімум дві - відправник і одержувач. Тому в даному випадку суперечки про авторство
повідомлення не можуть бути дозволені незалежним арбітражем. Це важливо для тих систем, де між
учасниками немає взаємної довіри, що дуже характерно для банківських систем, пов'язаних з управлінням значними цінностями. p>
Таким чином, існування проблеми підтвердження достовірності і авторства масивів даних, окремою від
завдання забезпечення їх секретності, не викликає сумніву. У наступних розділах цієї статті
викладаються підходи до її розв'язання, що базуються на використанні класичних блокових шифрів. У розділі 2
розглядаються підходи до вирішення завдання підтвердження достовірності даних, а в розділі 3 - до задачі підтвердження їх авторства. У принципі, для вирішення зазначених завдань може бути використаний
будь-який традиційний блочний криптографічний алгоритм. У комп'ютерних кодах, що додаються до
цієї статті, автор використовує найбільш знайомий і близький йому шифр - криптоалгоритм ГОСТ28147-89. p>
2.
Контроль незмінності
масивів даних.
2.1.
Завдання імітозащіти
даних.
Під імітозащітой b> даних у системах їх обробки розуміють захист від нав'язування помилкових
даних. Як ми вже з'ясували, практично завжди на деяких етапах свого життєвого циклу інформація
виявляється поза зоною безпосереднього контролю за нею. Це трапляється, наприклад, при передачі даних
по каналах зв'язку або при їх зберіганні на магнітних носіях ЕОМ, фізичний доступ до яких сторонніх осіб виключити майже ніколи не представляється
можливим. Тільки якщо цілком укласти лінію зв'язку в кожух з твердого металу, всередину кожуха закачати газ
під тиском і висилати роту автоматників прочісувати місцевість кожного разу, коли в секції такої системи будуть зафіксовані найменші зміни тиску,
як це, за чутками, роблять Російські спецслужби, відповідальні за урядовий зв'язок, буде хоч якась гарантія недоторканності
переданих даних, не завжди, втім, достатня. Але подібний підхід багаторазово здорожує вартість каналів зв'язку,
адже вартість кожуха, захищених приміщень для обробки сигналу і послуг озброєних людей на багато порядків перевищує вартість прокладеною витої пари
проводів. І як у цьому випадку бути з електромагнітним сигналом? - Адже не до всіх місць можна дотягнути дріт, а
такий сигнал, навіть якщо це вузьконаправлений лазерний пучок, не кажучи про звичайний радіосигналі, не сховаєш в кожух. p>
Таким чином, фізично запобігти внесенню несанкціонованих змін в дані в переважній
більшості реальних систем їх обробки, передачі та зберігання не представляється можливим. Тому вкрай важливо
своєчасно виявити сам факт таких змін - якщо подібні випадкові чи навмисні спотворення будуть вчасно виявлено, втрати користувачів системи
будуть мінімальні і обмежаться лише вартістю «порожній» передачі або зберігання неправдивих даних, що, звичайно, у всіх реальних ситуаціях незмірно менше
можливих збитків від їх використання. Метою зловмисника, нав'язує системі неправдиву інформацію, є
видача її за справжню, а це можливо тільки в тому випадку, якщо сам факт такого нав'язування не буде вчасно виявлено, тому проста фіксація цього
факту зводить нанівець усі зусилля зловмисника. Підіб'ємо підсумок - під захистом даних від несанкціонованих змін в криптографії
розуміють не виключення самої можливості таких змін, а набір методів, що дозволяють надійно зафіксувати їх факти, якщо вони мали місце. p>
Спробуємо знайти універсальні b> підходи до побудови такого захисту. Перш за все, в розпорядженні одержувача інформації має бути процедура
перевірки або аутентифікації b> A (T) b>, що дозволяє перевірити
справжність отриманого масиву даних T b>. На виході вказана процедура повинна видавати одне з двох можливих
бульових значень - масив даних розпізнається як справжній, або як помилковий: A b> ( T b>)