Генератори випадкових бітів. Методика статистичного тестування NIST STS, страница 3

RSA криптоалгоритм є блоковим, у ньому повідомлення М розбивається на блоки Мi, з довжиною блоку  (на сьогодні 768 біт мінімум), реально 1024, 2048 і більше бітів. Блок криптограма Сі обчислюється за правилом

,                                            (1.1)

де  - є відкритий ключ прямого перетворення, N – модуль перетворення є добутком виду

,                                                       (1.2)

де в свою чергу P, Q – великі прості числа.

Якщо  lp є довжина простого числа Р, наприклад в бітах, а lq – довжина простого числа Q, то довжина модуля N

.                                                 (1.3)

Розшифрування блока криптограми здійснюється за правилом:

,                                      (1.4)

де Dк – є ключ зворотного перетворення, тобто розшифрування .

Однозначність розшифрування можна підтвердити підставивши (1.4) в (1.1). В результаті одержимо:

.                                         (1.5)

Ключова пара RSA складається з особистого ключа RSA і відкритого ключа RSA.

Відкритий ключ RSA складається з модуля n, який є добутком двох позитивних простих цілих чисел p і q (тобто, n = pq), і відкритої ключової експоненти e. Тому, відкритий ключ RSA – це пара значень (n, e), яка використовується для перевірки цифрових підписів. Розмір ключової пари RSA звичайно розглядається як довжина модуля n в бітах.

Відповідний особистий ключ RSA складається з того ж модуля n і особистої ключової експоненти d, яка залежить від n і відкритої ключової компоненти e. Тому, особистий ключ RSA – це пара значень (n, d), яка використовується для генерації цифрових підписів.

Для забезпечення безпеки два цілі числа p і q, і особиста ключова експонента d повинні зберігатися в секреті. Модуль n і відкрита ключова компонента e можуть бути відомими всім. Керівництво по захисту цих значень визначено в NIST SP 800-57.

У стандарті FIPS 186-3 визначено три альтернативні довжини модуля: 1024, 2048 і 3072 біт.

Параметри RSA повинні випадково генеруватися з використанням затвердженого генератора випадкових або псевдовипадкових бітів (напр., такого, як визначено в NIST SP 800-90). Результуючі (псевдо) випадкові числа повинні використовуватися як початкові значення для генерації параметрів RSA. Початкові значення повинні зберігатися в секреті або бути знищеними після обчислення модуля n.

Критерії для ключових пар RSA

Ключі RSA повинні відповідати певним критеріям згідно FIPS 186-3:

1.  Відкрита експонента e повинна вибиратися з наступними обмеженнями:

¾  Експонента e повинна бути цілим непарним позитивним числом, таким, що:

                                       (1.6)

де nlen - це довжина модуля n в бітах.

2.  Два секрети і випадково згенеровані позитивні прості p і q повинні вибиратися з наступними обмеженнями:

¾  (p-1) і (q-1) повинні бути взаємно простими з відкритою експонентою e;

¾  Чотири числа (p ± 1) і (q ± 1) повинні розкладатися на прості співмножники (позначені p1, p2, q1 і q2);

¾  Особистий простий множник p повинен вибиратися випадково з простих чисел, які задовольняють умові: , де nlen - це довжина модуля n в бітах.

¾  Особистий простий множник q повинен вибиратися випадково з простих чисел, які задовольняють умові: , де nlen - це довжина модуля n в бітах.

¾  Різниця між p і q повинна бути

3.  Особиста експонента d повинна вибиратися після генерації p і q з наступними обмеженнями:

¾  Експонента d повинна бути позитивним цілим значенням таким, що ; і

¾  .

Оцінка статистичних властивостей