- PSEC-KEM
-
PSEC-KEM(PSEC Key Encapsulation Method) - механизм шифрования ключа. Механизм основан на протоколе Диффи-Хеллмана иэллиптических кривых. PSEC-KEM разработан японской компанией Nippon Telegraph and Telephone(NTT). В Сентябре 2001 года включен в проект NESSIE вместо PSEC-2 и PSEC-3 и в стандарт ISO/IEC 18033-2.
Содержание
Описание
Краткое описание
В отличие от PSEC-2 PSEC-KEM предоставляет полную схему получения симметричного ключа 'K'. Схема работает на трех функциях: ECKGP-PSEC - метод генерации открытого и закрытого ключа PSEC-KEM.Encrypt - метод получения симметричного ключа К и зашифрованного текста c0 на основе открытого ключа PSEC-KEM.Decrypt - метод получения симметричного ключа К на основе закрытого ключа и зашифрованного текста c0
Методы преобразования данных
- I2OSP (Integer-to-OctetString) - Раскладываем x(исходное целое число) как x:= Mn-128(n-1) + ... + M128 + M0. Каждое Mi - элемент выходной строки.
- OS2IP (OctetString-to-Integer) - x := , где x - целое число и Mi - элемент строки.
- ECP2OSP (EllipticCurvePoint-to-OctetString) - преобразует точку эллиптической кривой в байтовую строку.
- OS2ECPP (OctetString-to-EllipticCurvePoint) - преобразует байтовую строку в точку эллиптической кривой.
Генерация ключей
Входные параметры:
- Случайная строка фиксированной длины r
- Эллиптическая кривая E
- Точка P эллиптической кривой E
Выходные значения:
- Открытый ключ pk
- Закрытый ключ sk
- Выбирается случайное число p порядка P.
- Генерируется целое число s в диапазоне [2, p - 1] с помощью строки r.
- W := sP.
- pk := (W).
- sk := (s).
- Возвращаем pk и sk.
Кодирование ключа
Входные параметры:
- Открытый ключ pk
- Случайная строка фиксированной длины r
- Длина строки r - rLen
- Эллиптическая кривая E
- Точка P эллиптической кривой E
Выходные значения:
- Симметричный ключ K длины KeyLen
- Ключ сокрытия C
- H := KDF(I2OSP(0, 4)||r,KeyLen + l(k) + 16).
- Раскладываем H как t||K где t байтовая строка длины l(k) + 16 и K байтовая строка длины KeyLen
- := OS2IP(t) mod p.
- Q := *pk.
- C1 := ECP2OSP(P).
- C2 := KDF(I2OSP(1, 4)||C1||ECP2OSP(Q), rLen) r.
- C := (C1,C2).
- Возвращаем K и C.
Декодирование ключа
Входные параметры:
- Закрытый ключ sk
- Ключ сокрытия C
- Эллиптическая кривая E
- Точка P эллиптической кривой E
Выходные значения:
- Симметричный ключ K длины KeyLen
- Разделяем C на (C1,C2).
- X := OS2ECPP(C1).
- Устанавливаем длину rLen в значение длины C2.
- Q := sk*X.
- r := C2 KDF(I2OSP(1, 4)||C1||ECP2OSP(Q), rLen)
- H := KDF(I2OSP(0, 4)||r,KeyLen + l(k) + 16).
- Раскладываем H как t||K где t байтовая строка длины l(k) + 16 и K байтовая строка длины KeyLen
- Set := OS2IP(t) mod p.
- Возвращаем K.
Параметры системы
MGF(Mask Generation Function) - принимает на вход строку байт произвольной длины и желаемую длину выходной строки в битах. Выдает строку байт желаемой длины. Алгоритм работы основан на хеш-функции
Рекомендуемые параметры
- pLen = 160
- KDF = MGF(SHA-1, hashLen = 160)
- hLen = 160
- r = При генерации строки использовать сжатие.
- keyLen = 256
Безопасность
Безопасность PSEC-KEM основана на вычислительной задаче Деффи-Хеллмана (CDH - Computational Diffie-Hellman), которая состоит в следующем:
Даны (P, xP, yP), где P - точка эллиптической кривой E и x,y случайно выбранные числа из {0, ... , p-1}. Вычисляется точка xyP. CDH утверждает что эта задача является неразрешимой. 4 - CDH (page 24)
Ссылки
Категория:- Криптография
Wikimedia Foundation. 2010.