Метод, алгоритм та програмний код програмної генерації псевдовипадкової послідовності є відомим і знаходиться наприклад, для мови Java у відкритому доступі, [1,2], що робить його теоретично вразливим для кібератаки. На перше місце висувається проблема створення саме криптостійкого апаратного генератора ПВЧ.
Об’єктом дослідження даної роботи є послідовності випадкових чисел (ПВЧ), одержаних з послідовних кадрів вебкамери, що може бути практично використано для створення апаратного генератора ПВЧ.
Проблема, що розглядається, полягала у тому, щоб вирахувати рівень схожості ПВЧ, що були одержані з послідовних кадрів вебкамери.
Метою даної роботи є дослідження кореляції випадкових послідовностей, де джерелом чисел, виступають значення яскравостей пікселів кадра зображення, сформованого фотоматрицею веб камери, яка спроектована на основі пристрою із зарядовим зв’язком чи кремній-метал-окисел-напівпровідник матриці веб камери, підключеної до персонального комп'ютера.
Обчислювальні методи, швидкодія та гнучкість класу BufferedImage та Webcam мови програмування Java дозволили оптимально вилучити з об’єкта кадра веб камери одразу ж саму послідовність чисел, що відповідають величинам яскравості пікселів матриці, без складних матричних перетворень. Сама послідовність була розміщена у просту структуру даних типу Array і готова для подальшого дослідження.
Пілотні дослідження проводились для роздільної здатності QQVGA (176 × 144), таким чином довжина послідовності, що вилучена, становила 76032 числа типу byte [-128 ... +127].
Для 25 захоплених послідовних кадрів (40 мілісекунд затримка) був запрограмований алгоритм порівняння кожного кадра з наступним — всього 24 пари. Для кожної такої пари було вирахувано кількість пікселів, які змінили своє значення за 40 мілісекунд.
Камера знаходилась в умовах відсутності освітлення (10-4 люкс) без усякого стороннього впливу, то ж можна припустити, зміна значень яскравості пікселів матриці являються результатом внутрішнього неконтрольованого хаосу. Процент пікселів, які змінили свою величину упродовж часу 40 мілісекунд, і буде детермінувати міру хаосу та рівень лавинного ефекту. А процент пікселів, які не змінили свого значення - рівень міжкадрової кореляції з часом.
На рис. 1 зображена міжкадрова кореляція пікселів для режиму захоплення кадрів QVGA(320 × 240) TrueColor.
Рис. 1 Рівень міжкадрової кореляції пікселів вебкамери у режимі QVGA
З рисунку видно, що, наприклад, рівень кореляції між першим і другим кадром становить 35.4% - це значить, що 35.4% пікселів не змінили свого стану при переході від першого кадру до другого. Між другим і третім кадром рівень кореляції становив рівно 35% .
Рівень хаосу при переході від першого кадру до другого становив 64.6%, для кадрів 2-3 — 65.0% відповідно. В середньому рівень кореляції потрохи зростає від кадра до кадра і становить приблизно 36%, а рівень хаосу відповідно 64%. Ніякої закономірності не спостерігається, що ще раз підкреслює хаотичність та непередбачуваність значень яскравості пікселів від кадру до кадру.
Висновок. Міжкадрова кореляція значень пікселів зображення матриці вебкамери досить низька, зафіксований рівень хаосу при несприятливих умовах (повна темрява ) приблизно на 10% вище вимог криптостійкості [3].
References
1. Class SecureRandom. All Implemented Interfaces. URL: https://docs.oracle.com/javase/8/docs/api/java/security/SecureRandom.html
2. M. Cornejo, S. Ruhault, “(In)Security of Java SecureRandom Implementations”, Journées Codage et Cryptographie, 2014. https://www-fourier.ujf-grenoble.fr/JC2/exposes/ruhault.pdf
3. National Institute of Standards and Technology (NIST), “Recommendation for the Entropy Sources Used for Random Bit Generation”, SP 800-90C, August 2022, https://doi.org/10.6028/NIST.SP.800-90C.
|