Метою цього додатка є показати, як механізм встановлення ключа, наведений в цій частині стандарту, може бути реалізований в термінах еліптичних кривих. Обрання представлених протоколів широко використовують в додатку В.
Математичне підґрунтя для еліптичних кривих:
Еліптична крива Е є несингулярна кубічна крива, визначена на деякому полі К. Еліптична крива може бути наведена як множина рішень (х, у) (х, у є К) рівняння
У2 = X3 + аХ + b
разом з особливою точкою q — точкою в нескінченності.
Еліптичні криві наділені властивостями бінарної дії °: Е ■ Е -> Е, приєднуючи до кожної пари (Р1, Р2) точок в Е третю точку Р1о Р2. Відносно цієї дії Е є Абелевою групою з нейтральним елементом q.
Нехай Р є деякою точкою на еліптичній кривій Е, яка генерує циклічну групу <Р> із граничною чисельністю q відносно групової дії “о". Тоді кожен елемент із <Р> є деяким ступенем F^k від Р, де Р14 є абревіатурою k-кратної операції (Р ° Р °... ° Р).
Дискретне піднесення до степеня F(, Р) на <Р> визначають як
F(k, Р) = Р*к для к є {1,..., q - 1}.
Зазначимо, що для довільних h, к є {1,..., q - 1} виконується рівняння
якщо група <Р>, генерована Р, є Абелевою.
З іншого боку, якщо задана довільна точка Q є <Р>, то однозначно визначене ціле х є {1,..., q-1} таке, що Q = р№ означується як дискретний логарифм Q з основою Р.
Криптографічна важливість еліптичних кривих спирається на передбачувані труднощі визначення дискретного логарифма на еліптичній кривій, визначеній на скінченних полях, які — за наявних знань — значно більші за розкладення на множники цілого числа або обчислювання дискретного логарифма в GF(p). Це надає можливість використовувати системи з відкритими ключами, основані на еліптичних кривих, із значно меншим числом параметрів, порівняно з більш знайомими системами з відкритим ключем.
Система познак:
У цьому додатку будемо дотримуватися термінології, введеної в попередньому розділі.
Крім того, зафіксуємо такі познаки:
К є скінченним полем, яке складається з точно рп елементів, де р є простим числом, більшим за 3, а п — додатне ціле.
Е є еліптична крива на К і Р є точкою на Е, яка генерує циклічну групу <Р> із чисельністю q. Припускаємо, що q є простим числом і множина Н = {1,..., q - 1}.
Кожний суб’єкт X має особистий ключ hxy Н, відомий лише X, і відкритий ключ Рх= G[hX], відомий всім іншим суб’єктам.
Зазначимо, що особисті ключі є суворо простими цілими, в той час як таємні — це точки на кривій. Цим система відрізняється від систем із відкритим ключем, основаним на дискретних логарифмах із простим модулем, де обидва ключі є об’єктами того самого типу. Ця різниця між двома типами ключів у випадку еліптичних кривих є причиною того, чому необхідно ввести додаткову функцію, яка відображає точки <Р> в цілі в Н, якщо хтось бажає перевести протоколи додатка В в еліптичні криві.
Нехай я: <Р> ->Не функцією такою, що об’єднання я і F(°,P), задане як
к -> F1^ -> n(F*k])
односпрямоване.Примітка 1. Критичним параметром для безпеки системи із відкритим ключем на основі еліптичних кривих є величина простого числа q. Ціле q повинно бути достатньо великим, щоб F(°,P) могла вважатися односпрямованою функцією. Враховуючи алгоритми, які існують на тепер, Р(° ,Р) є односпрямованою, якщо q > 2™.
Примітка 2. На відміну від систем, основаних на GFfp)* дискретних логарифмах (подібній до DSA), є можливість обрати параметри q і р" приблизно однієї величини.
Примітка 3. Є ще декілька умов відносно простих р і q (наприклад, р * q) і параметрів кривої а і Ь, яких необхідно дотримуватися, щоб зробити обчислення дискретного логарифма на еліптичній кривій неможливим.
Примітка 4. Є багато можливостей визначити %. Одним простим методом є виконати проекцію точок із <Р> на їх х-координати і «читати» ці елементи поля, як цілі по mod q.
С.1 Неінтерактивне узгодження ключа типу Діффі-Гелмана
Це приклад узгодження ключа механізму 1.
Конструювання ключа (А1)
З використанням свого власного особистого ключа узгодження ключів hA і відкритого ключа узгодження ключів РвА обчислює розподілений ключ як
Кав = (Рв)[М}.
Конструювання ключа (S1)
З використанням свого власного особистого ключа узгодження ключів hB і відкритого ключа узгодження ключів РАВ обчислює розподілений ключ як
KAB= (PA)[hB}.
С.2 Узгодження ключа типу ЕльГамаля
Це приклад узгодження ключа механізму 2.
Конструювання маркера ключа (А1)
А випадково і таємно генерує гвН, обчислює (Ре)и> конструює маркер ключа
КТД1 = (Р)[И
і надсилає його до В.
Конструювання ключа (А2)
А обчислює розподілений ключ
Кав = (Рв)[И = Р1^1
Конструювання ключа (S1)
В обчислює зі своїм власним особистим ключем розподілений ключ із КТЛ1 так
Кав = (КТА1)[ЛЄ1 = = рІГЙВ’_
С.З Узгодження ключа за Нюберг-Рюппелем.
Це приклад узгодження ключа механізму 3.
Протокол не є копією один до одного протоколу ВЗ, але він слідує суттєвим ідеям ВЗ.
Систему підпису і систему узгодження ключів обирають так, щоб система підпису визначалася ключами (hx, Рх)-
Щоб запобігти повторенню старих маркерів ключів, цей приклад використовує позначку часу або порядковий номер TVP, і криптографічну ґеш-функцію hash, яка відображає рядки бітів довільної довжини у випадкові цілі, наприклад в Н.
Конструювання ключа (А1.1)
А випадково і таємно генерує г в Н і обчислює
R = рМ
Додатково, А обчислює розподілений таємний ключ як
Кав = (Рв)[И.
З використанням розподіленого таємного ключа КАВ, А обчислює криптографічне контролю- вальне значення у точці R, на розрізнювальному ідентифікаторі посилана А і порядковому номері або позначці часу TVP
е = hash(RKABATVP).
Підпис маркера ключа (Д1.2)
А обчислює підпису - (r- hA-e)modq формує маркер ключа
КТД1 = (Я|И||Л/Р||у) і надсилає його до В.
Конструювання ключа (81.1)
З використанням свого особистого ключа узгодження ключа hB, В обчислює розподілений таємний ключ
// _ UhB]
- К .
З використанням розподіленого таємного ключа КАВ, В обчислює криптографічне контролю- вальне значення на розрізнювальному ідентифікаторі А та TVP і обчислює
е = КЛВ||А[|TVP).
Верифікація підпису (81.2)
В контролює достовірність TVP і верифікує з використанням відкритого ключа посилана РА тотожність
R = рМ<>(РА)Іе]
С.4 Узгодження ключа типу Діффі-Гелмана
Це приклад узгодження ключа механізму 4.
Конструювання маркера ключа (Д1)
А випадково і таємно генерує гА в Н і обчислює РгА конструює маркер ключа ктл, = P™
надсилає його до В.
Конструювання маркера ключа (81)
В випадково і таємно генерує гв в Н, обчислює P[fB конструює маркер ключа
KTS1 = Р™
надсилає його до А
Конструювання ключа (/12)
А обчислює розподілений ключ як
КАВ=
Конструювання ключа (82)
В обчислює розподілений ключ як
Кав - (Р('Л])[/в] = Р[л4ИгЄ].
С.5 Узгодження ключа типа А(0) Мацумото-Такашима-Імаі
Це приклад узгодження ключа механізму 5.
Конструювання маркера ключа (А1)
А випадково і таємно генерує гАв Н, обчислює маркер ключа КТД1 = Р*гА]
і надсилає його до В.
Конструювання маркера ключа (81)
В випадково і таємно генерує гв в Н, обчислює маркер ключа КТві = P!rS]
і надсилає його до А.
Конструювання ключа (82)
В обчислює розподілений ключ як
Кдв = МКТл,'*81. p/sl),
Конструювання ключа (Д2)
А обчислює розподілений ключ як
Кав = со(КТв1[М1, Р/В1).
С.6 Пересилання ключа типу ЕльГамаля
Це приклад передавання ключа механізму 1.
Конструювання маркера ключа (А1)
А отримав ключ К є Н і хоче передати його надійно до В.
А випадково і таємно генерує ціле г є Н, обчислює точку на кривій РІГ1 і зашифровує К як
BE = (К л((Ре[г1)) mod q.
Потім А конструює маркер ключа
КТЛ1 = ВЕ||Р[Г1
і надсилає його до В.
Розібрання маркера ключа (В1)
Щоб відновити ключ К, суб’єкт В визначає з (P[rl) із використанням свого особистого ключа узгодження ключа hB, точку на кривій (P0)[r] = (P[yhB] і на наступному — проекцію tc((Ps)w).
Остаточно В отримує ключ К обчисленням
К = (ВЕ)-(7г((РвТвІ)Г1 modq.
С.7 Пересилання ключа типу ЕльГамаля з підписом автора
Це приклад передавання ключа механізму 2. Особистий і відкритий ключі узгодження ключів суб’єкта В є, відповідно, Лв і
Рв = (P)[hB1.
Особисте і відкрите перетворення підписування суб’єкта А, відповідно, означимо Sa і Уа; (Sa, Va) можуть означувати будь-яку систему підпису, наприклад систему підпису, визначену в ISO/IEC 9796.
Зашифровування ключа (А1.1)
А отримав ключ К і хоче переслати його надійно до В. А випадково і таємно генерує ціле г є Н, точки на кривій F*r Ps[d і зашифровує блок даних ключа АЦК як
BE = (AK)-(n((PBlr]))modq.
Зазначимо, що К треба обирати так, щоб значення (А||К) було меншим за просте число q.
Конструювання маркера ключа (Д1.2)
А формує блок даних маркера, який складається з розрізнювального ідентифікатора одержувача В, необов’язкової позначки часу або порядкового номера ТУРІ зашифрованого блоку BE. Потім А підписує блок даних маркера з використанням свого приватного перетворення підписування Sa і надсилає остаточний маркер ключа
КТаі = (В||ТУР||Р[И||ВЕ)
і його підпис
SA(S||7VP|rtBE)
ДО В.
Верифікація маркера ключа (£31.1)
В використовує відкрите перетворення верифікації посилана Va для верифікації цифрового підпису одержаного маркера ключа КТаі. Потім В контролює ідентифікацію одержувача В і, необов’язково, TVP.
Розшифровування ключа (В1.2)
В розшифровує блок BE з використанням свого особистого ключа узгодження ключа hB обчисленням
(АЦК) = (ВЕ)-(тг((Рви)thfl1))-1 modq.
Потім В контролює ідентифікацію посилана А. Якщо всі перевірки успішні, В приймає ключ К.ДОДАТОКD
(довідковий)
БІБЛІОГРАФІЯ
ANSI Х9.30 199х, Public Key Cryptography Using Irreversible Algorithms for the Financial Services Industry, Part 1: The Digital Signature Algorithm (DSA)
ANSI X9.30 199x, Public Key Cryptography Using Irreversible Algorithms for the Financial Services Industry, Part 3: Certificate Management for DSA
ANSI X9.31 199x, Public key cryptography using reversible algorithms for the financial services industry — Pan 4: Management of symmetric algorithm keys using RSA
Beller M.J., Yacobi Y., Fully-fledged two-way public authentication and key agreement for low- cost terminals. Electronic Letters, Vol. 29, no. 11 (27 May 93), pp 999—1001
RIPE, Integrity Primitives for Secure Information Systems — Final Report of RACE Integrity Primitives Evaluation (RIPE-RACE 1040), LNCS 1007, A. Bos-selaers, B. Preneel, Eds., Springer-Verlag, 1995
Diffie W., Hellman M.E., New Directions in Cryptography, IEEE Trans, on Inform. Theory, vol. IT- 22, pp. 644—654, Nov. 1976
EIGamal, T., A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms, IEEE Trans, on Inform. Theory, vol. IT-31, pp. 469—472, July 1985
Girault M., Pailles J.C., An identity-based scheme providing zero-knowledge authentication and authenticated key exchange. Proceedings of ESORICS 90, pp. 173—184
ISO 8732:1988, Banking — Key Management (Wholesale)
ISO/IEC 9594-8:1990, (CCITT X.509), Information technology — Open Systems Interconnection — The Directory — Authentication framework
ISO/IEC 9796:1991 Information technology — Security techniques — Digital signature scheme giving message recovery
ISO/IEC 9797:1994 Information technology — Security techniques - Data integrity mechanism using a cryptographic check function employing a block cipher algorithm
ISO/IEC 10118-2:1994 Information technology — Security techniques — Hash-functions — Part 2: Hash-functions using an n-bit block cipher algorithm
ISO/IEC 10118-3:1998 Information technology — Security techniques — Hash-functions — Part 3: Dedicated hash functions
ISO/IEC 10118-4:1998 Information technology— Security techniques — Hash-functions — Part 4: Mechanisms using modular arithmetic
ISO 11166-1:1994 Banking — Key Management by means of asymmetric algorithms — Part 1: Principles, Procedures and Formats
Matsumoto T., TakashimaY, Imai H., On Seeking Smart Public-Key-Distribution Systems, Trans, of the IECE of Japan, vol.E69 no.2, Feb. 1986 pp. 99—106
Menezes A., Elliptic Curve Public Key Cryto-systems, Kluwer Academic Publishers, 1993
Nyberg K., Rueppel R.A., Message Recovery for Signature Schemes Based on the Discrete Logarithm Problem, Proceedings of Eurocrypt’94, Springer-Verlag, 1994
Okamoto E., Proposal for identity-based key distribution system. Electronic Letters, Vol. 22, n°24, 20 Nov. 86, pp. 1283—4
Tanaka K., Okamoto E., Key distribution system for mail systems using ID-related information directory, Computers & Security, Vol.10, 1991, pp. 25—33
ISO/IEC 10118-2:1994 Information technology — Security techniques — Hash-functions — Part 2: Hash-functions using an n-bit block cipher algorithm
ISO/IEC 10118-3:1998 Information technology — Security techniques — Hash-functions — Part 3: Dedicated hash functions
ISO/IEC 10118-4:1998 Information technology — Security techniques — Hash-functions — Part 4: Mechanisms using modular arithmetic