логарифмирования цілих чисел по 512 біт, друге завдання, за оцінками математиків, незрівнянно складніше першою. Однак є одна особливість. Якщо в системі, побудованої за допомогою алгоритму RSA, криптоаналітику вдалося розкласти відкритий ключ N одного з абонентів на два простих числа, то можливість зловживань обмежується тільки цим конкретним користувачем. У разі ж системи, побудованої за допомогою алгоритму ЕльГамаля, загрози розкриття піддадуться всі абоненти криптографічного мережі.
Крім того, згадані вище Ленстра і Манасія не тільки похитнули стійкість RSA, розклавши дев'ятого число Ферма на прості множники за непристойно короткий час, але і, як було відмічено деякими експертами, вказали пролом в способі ЕльГамаля. Справа в тому, що підхід, що застосовувався при розкладанні на множники дев'ятого числа Ферма, дозволяє істотно удосконалити методи дискретного логарифмування для окремих спеціальних простих чисел. Тобто той, хто пропонує просте Р для алгоритму ЕльГамаля, має можливість вибрати спеціальне просте, для якого завдання дискретного логарифмування буде цілком під силу звичайним ЕОМ. Слід зауважити, що цей недолік алгоритму ЕльГамаля не фатальний. Досить передбачити процедуру, що гарантує випадковість вибору простого Р в цій системі, і тоді тільки що висловлене заперечення втрачає силу. Варто відзначити, що чисел спеціального виду, що послаблюють метод ЕльГамаля, дуже мало і випадковим їх вибором можна знехтувати.
. 2 Відкрите розподіл ключів
Поки переваги методів шифрування з відкритим ключем були очевидні. Однак на їх основі легко вирішувати завдання вироблення загального секретного ключа для сеансу зв'язку будь-якої пари користувачів інформаційної системи. Ще в 1976 році Діффі і Хеллман запропонували для цього протокол відкритого розподілу ключів. Він має на увазі незалежне генерування кожним з пари зв'язуються користувачів свого випадкового числа, перетворення його за допомогою деякої процедури, обмін перетвореними числами по відкритому каналу зв'язку і обчислення загального секретного ключа на основі інформації, отриманої в процесі зв'язку від партнера. Кожен такий ключ існує тільки протягом одного сеансу зв'язку або навіть частини його. Таким чином, відкритий розподіл ключів дозволяє кожній парі користувачів системи самим виробити свій загальний секретний ключ, спрощуючи тим процедуру розподілу секретних ключів. Хоча все не так просто - відсутність у абонентів перед сеансом зв'язку завчасно розподіленого загального секретного ключа в принципі не дає їм можливості упевнитися в достовірності один одного за допомогою обміну повідомленнями по відкритому каналу. Наприклад, пересилати ключі можна і по описаному вище алгоритму ЕльГамаля в модифікації Шаміра, але як переконатися в тому, що маєш справу з партнером, а не перехоплювачем? Для підтвердження автентичності кожен з учасників секретної мережі все ж повинен мати власний секретний ключ, відомий тільки йому і відрізняє його від всіх інших абонентів. У цьому випадку алгоритмом Діффі-Хеллмана буде забезпечена така процедура пред'явлення пароля, що його багаторазове використання не знижувало надійності докази справжності власника. У результаті дві функції загального секретного ключа, зазвичай доставляється секретному каналу, як захист інформації в каналі зв'язку від третьої сторони й підтвердження дійсності кожного з абонентів партнеру, розділяються.
Алгоритм відкритого розподілу ключів Діффі-Хеллмана виглядає так:
. Нехай є два абоненти відкритої мережі А і В, знаючі пару відкритих ключів Р і D. Крім того, у А є секретний ключ X з інтервалу (1, N), а у В є секретний ключ Y з того ж інтервалу.
. Абонент А посилає У шифровку свого ключа Z '= DX MOD Р, а абонент В посилає А шифровку свого ключа Z" = DY MOD P.
. Після цього загальний ключ Z вони обчислюють як Z=Z'Y=Z" X.
За допомогою спеціальних прийомів час формування загального ключа в системі Діффі-Хеллмана може бути скорочено у 5 разів у порівнянні з системою ЕльГамаля в модифікації Шаміра, і в 30 разів порівняно з RSA при тому ж рівні стійкості. Це, з погляду більшості практичних застосувань, виявляється помітною перевагою, так як шифрування і розшифрування за алгоритмом RSA приблизно в, тисячу разів повільніше класичних алгоритмів типу DES. Відзначимо, що для багатьох застосувань криптографічних систем з відкритим ключем час обчислень при криптографічних перетвореннях не має великого значення. Наприклад, при ідентифікації користувачів за кредитними картками не буде різниці зажадає вона одну мікросекунду або одну секунду. Те ж відноситься і до вибору загального ключа шифрування для іншої, більш швидкодіючої, але не володіє здатністю обміну ключами криптографічного системи.
Необхідність в системах відкритого розподілу ключів ма...