Криптография на кривых

Himan

Новичок
Всем привет.
Вот есть задача
  1. С помощью закрытого ключа и открытого ключа сформируйте 512-битный общий ключ, применив схему шифрования ECIES-KEM. Укажите следующие параметры:
    • эллиптическая кривая – NIST P-256 (prime256v1 в OpenSSL);
    • значения CheckMode, OldCofactorMode, SingleHashMode и CofactorMode равны 0;
    • функция кодировки – несжатый формат;
    • функция формирования ключа – HKDF с SHA256; она подробно описана в документе RFC 5869. Учтите следующее:
      • предоставлять соль не нужно (согласно стандарту RFC, массив данных должен быть эквивалентен соли на 32 нулевых байта).
  2. Разделите сгенерированный ключ на два 256-битных ключа: symmetricEncryptionKey и macKey
Как создать новый ключ из ничего алгоритмом prime256v1 я разобрался. Но там некуда вставить уже существующие ключи. Про дальнейшие параметры я вообще молчу. Описание алгоритма ECIES-KEM (ISO/IEC 18033-2:2006) вообще платное (буржуи, что с них взять). Может есть какие-то дополнительные пакеты для этой лабуды...

Заранее благодарен.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Асимметричным ключом можно зашифровать только небольшой объем данных, поэтому асимметричный ключ используется чтобы зашифровать симметричный ключ, которым шифруются данные уже любого размера.
С учетом требования создать message authentication code (подпись), вероятно, речь идет про формирование общего ключа в этом контексте, но я не могу быть уверен, это все выглядит как "решите мне контрольную".

По HKDF в доке по openssl есть простой пример на С, RFC тут не нужен.

а специалистов по алгоритмам шифрования здесь нет - это математика, в основном работа научно-исследовательских учреждений,
и не имеет отношения к разработке ни прикладного, ни системного ПО, все просто используют готовое на любом языке программирования
 
Последнее редактирование:

Himan

Новичок
Это алгоритм от Гугла для их сервиса. Они, сволочи, предоставляют свою библиотеку шифрования, но только для Java, C и Pyton. Мы спросили у них за пыху, а те нас послали и сказали что типа дырявая ваша пыха, потому и не заморачивались с написанием. Вот и приходится самому пыхтеть
Спасибо и на этом.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
php для google - это not invented here, на PHP написаны yahoo и facebook - его главные конкуренты, а oracle работает в b2b, и гуглу он не конкурент
скорее всего, там внутренний запрет на php
аналогично, когда oracle покупает компанию, код переписывают на java

все сводится к цене вопроса, если речь про >$10k - разберитесь с ffi, если меньше - найди другое решение основной задачи
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
То есть, есть работающие библиотеки на Java, C и Python, а вместо этого ты предоставляешь это невнятное описание? ;)

дай ссылку на библиотеки лучше.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
кстати, да, из java или питона портировать на php - вопрос от дней до недель
 

AmdY

Пью пиво
Команда форума
Можно не гемороиться и просто cli команду дёргать, если уж есть либа для питона. Это проще и менее забаговано, чем переписывать алгоритм на php.
 
Сверху