Как проверить случайность подписи ECDSA, сгенерированной с помощью HSM? - PullRequest
1 голос
/ 16 октября 2019

Мне нужно программно (используя Python) проверить, является ли подпись, сгенерированная с помощью HSM RnG, действительно случайной.

Не нашел много контента в Интернете, поэтому любая помощь будет признательна !!

Как проверить случайность подписи ECDSA, сгенерированной с помощью HSM?

Ответы [ 2 ]

1 голос
/ 17 октября 2019

Как Squeamish указал в комментариях, на самом деле нет никакого способа убедиться, что результат генератора случайных чисел действительно случайный. Например, это может быть просто вывод Pi в одном конкретном месте. Как правило, вам придется доверять сертификации платформы FIPS или Common Criteria, но учтите, что ни один из них не является герметичным.

Кроме того, вы также можете положиться на тот факт, что компании HSM хотят зарабатывать деньги. Один из способов потерять (все) долю рынка - показать, что вам нельзя доверять. Несколько компаний, в том числе RSA Labs, уже поняли это в ущерб себе. Если вы не полностью доверяете компании HSM, не покупайте ничего у них;но обратите внимание, что в практическом смысле не существует такой вещи, как идеальная защита .


Возможно, можно провести несколько простых экспериментов. Если вы запрашиваете генерацию подписи с использованием тех же данных, вы никогда не должны получать одну и ту же подпись (значения r и s для ECDSA). Это показывает, что выход ГСЧ по крайней мере не повторяется. Хорошей идеей может быть проверка этого - один раз - с несколькими соединениями / сеансами.

Вы также можете проверить и затем объединить все полученные значения x (используемые для окончательного сравнения), а затем запустить тест на случайность (такой какнабор «несгибаемый») поверх него.


Наконец, если вы не доверяете источнику энтропии ГСЧ HSM, обратите внимание, что вы можете добавить дополнительные семена к HSM. Пожалуйста, проверьте документацию вашего HSM, как он реагирует на добавление / смешивание семян.

0 голосов
/ 18 октября 2019

В этой статье представлен обзор методов проверки случайности некоторых данных:

Существует много практических мер случайности для двоичной последовательности. К ним относятся меры, основанные на статистических тестах, преобразованиях и сложности или их комбинации. Широко известной и широко используемой коллекцией тестов была Diehard Battery of Tests, представленная Marsaglia;это было расширено до набора TestU01 L'Ecuyer и Simard. Использование преобразования Адамара для измерения случайности было предложено С. Каком и развито Филлипсом, Юэном, Хопкинсом, Бет и Дай, Мундом и Марсаглией и Заманом.

Определен стандартизированный набор тестовв специальной публикации NIST 800-22 .

Также ознакомьтесь с этим обсуждением .

...