<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Використання генератора випадкових чисел з апаратним джерелом ентропії для задач симетричної криптографії</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Kryvyi Rih State Pedagogical University</institution>
          ,
          <addr-line>54, Gagarin Ave., Kryvyi Rih, 50086</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <fpage>55</fpage>
      <lpage>62</lpage>
      <abstract>
        <p>Анотація. Метою дослідження є перевірка можливості використання розробленого генератора випадкових чисел [1], який використовує як джерело ентропії шуми звукової карти, в алгоритмах симетричної криптографії. Ключові слова: генератор випадкових чисел, джерело ентропії, статистичний критерій, закон розподілу, симетрична криптографія.</p>
      </abstract>
      <kwd-group>
        <kwd>random number generator</kwd>
        <kwd>source of entropy</kwd>
        <kwd>test statistic</kwd>
        <kwd>probability distribution</kwd>
        <kwd>symmetric cryptography</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        використовує випадкові числа. Вектори ініціалізації, модифікатори геш-функцій,
унікальні параметри при роботі з цифровими підписами повинні прийматися
випадковими [
        <xref ref-type="bibr" rid="ref2 ref8">2</xref>
        ]. При використанні генераторів випадкових чисел в
криптографічних системах генератори випадкових чисел повинні відповідати
наступним вимогам [
        <xref ref-type="bibr" rid="ref3 ref9">3</xref>
        ]:
─ послідовність, що генерується повинна мати максимально великий період;
─ послідовність, що генерується, не повинна мати прихованих періодичностей;
─ послідовність, що генерується, повинна мати рівномірний спектр.
Для демонстрації статистичних властивостей генераторів випадкових чисел
використовуються різні підходи до статистичного тестування. Найчастіше набір
і методику тестування пропонував сам розробник генератора. Таким чином,
склалася ситуація, яка характеризується тим, що неможливо було об’єктивно
порівняти різні генератори з єдиних позицій. Щоб подолати дану ситуацію,
необхідно використовувати деякий стандартний набір статистичних тестів,
об’єднаних єдиною методикою розрахунку необхідних показників ефективності
генератора й прийняття рішення про випадковість генерованих послідовностей.
2
      </p>
      <p>
        Методологія
У 1999 році фахівцями NIST в рамках проекту AES (Advanced Encryption
Standard) був розроблений набір статистичних тестів NIST Statistical Test Suite),
а також запропонована методика проведення статистичного тестування
генераторів випадкових чисел [
        <xref ref-type="bibr" rid="ref10 ref4">4</xref>
        ], які на даний момент найкраще відповідають
потребам всіх зацікавлених сторін.
      </p>
      <p>
        У даній роботі розглядаються критерії прийняття рішення про проходження
послідовністю статистичного тесту, набір статистичних тестів NIST і наводяться
результати експериментальних досліджень властивостей ГВЧ, описаного в
роботі [
        <xref ref-type="bibr" rid="ref1 ref7">1</xref>
        ].
      </p>
      <p>Порядок тестування окремої двійкової послідовності S виглядає наступним
чином.
1. Висувається нульова гіпотезу Н0 – припускаємо, що дана двійкова
послідовність S випадкова.
2. За послідовністю S розраховується статистику тесту c(S).
3. З використанням спеціальної функції та статистики тесту розраховується
значення ймовірності P=f(c(S)), P[0; 1].
4. Значення ймовірності P порівнюється з рівнем значущості α, α[0,001; 0,01].
Якщо P≥α, то гіпотеза Н0 приймається. В іншому випадку приймається
альтернативна гіпотеза.
Обраний пакет статистичних тестів може використовуватися для вирішення
наступних завдань:
─ виявлення ГВЧ (ГПВЧ), які формують «погані» двійкові послідовності;
Для перевірки було генеровано три випадкові послідовності в діапазоні [0; 255]
розміром 10 000 елементів.</p>
      <p>
        Пакет NIST STS було завантажено з офіційного сайту Національного інституту
стандартів і технологій (National Institute of Standards and Technology) [
        <xref ref-type="bibr" rid="ref11 ref5">5</xref>
        ], також
для інтерпретації отриманих результатів використовувалась офіційна інструкція
із сайту [
        <xref ref-type="bibr" rid="ref12 ref6">6</xref>
        ].
      </p>
      <p>Перед тим, як було протестовано кожну з трьох послідовностей, був
побудований загальний графік розподілу для послідовностей, показаний на
рис. 1. По осі x відкладено значення байту, а по осі y кількість байтів з таким
значенням у послідовності.</p>
      <p>Рис. 1. Графік розподілів трьох генерованих послідовностей
З рис. 1 видно, що кожна із послідовностей має свої піки та особливості, тому
вони підходять для перевірки пакетом NIST STS. Першим тестом, проведеним
над генерованими послідовностями, був Binary Matrix Rank Test. Основну увагу
в даному тесті приділяють рангу непересічної підматриці всієї послідовності.
Метою цього тесту є перевірити лінійну залежність між підрядками фіксованої
довжини оригінальної послідовності. Варто зауважити, що цей тест також
використовуються в серії тестів DIEHARD.</p>
      <p>Інтерпретація цього тесту: великі значення χ2 (obs) вказують на те, що
відхилення рангового розподілу від того, що відповідає випадковій
послідовності, є значним. В результаті проходження даного тесту результатом, за
яким можна зазначати, що послідовність випадкова, є значення p. Якщо
обчислене p&lt;0,01, то вважається, що послідовність не випадкова. Інакше
послідовність є випадковою.</p>
      <p>Результати проходження тесту Binary Matrix Rank Test для першої
послідовності показані на рис. 2.</p>
      <p>Для даної послідовності значення p=0,203766, що свідчить про випадковість
генерованої послідовності. Також значення χ2=3,181562 є малим, тобто
відхилення рангового розподілу від того, що відповідає випадковій
послідовності, є незначним.</p>
      <p>Рис. 2. Binary Matrix Rank Test для першої послідовності
Для послідовностей 2 і 3 значення p=0,374306 та p=0,648387, що також вказує на
їх випадковість. Відповідні значення χ2: 1,965364 та 0,866535 є досить малими,
що знову свідчить про те, що відхилення рангового розподілу від того, що
відповідає випадковій послідовності, є незначним.</p>
      <p>При цьому варто відмітити, що третя генерована послідовність з отриманих
результатів є більш «випадковою» через більше значення p та менше значення χ2
у порівнянні із послідовностями 1 та 2.</p>
      <p>Наступний тест, що використовувався для перевірки випадковості
генерованих послідовностей, це Non-overlapping Template Matching Test.
Основною для цього тесту є кількість випадків попередньо заданих цільових
рядків. Мета цього тесту – виявлення генераторів, що виробляють забагато
випадків даної аперіодичної моделі. Для цього тесту використовується m-бітне
вікно, що шукає конкретний m-бітний шаблон. Якщо шаблон не знайдено, вікно
пропускає одну бітну позицію. Якщо шаблон знайдено, вікно пропускає біт після
знайденого шаблону, і пошук відновлюється.</p>
      <p>Цей тест відкидає послідовності, що демонструють занадто багато або занадто
мало випадків даної аперіодичної картини.</p>
      <p>Тест можна інтерпретувати як відхилення послідовностей, що виявляють
нерегулярні входження даної неперіодичної картини.</p>
      <p>Перша генерована послідовність за тестом Non-overlapping Template Matching
Test дала результуючий файл, показаний на рис. 3.
Рис. 3. Non-overlapping Template Matching Test для першої послідовності
Для кожного із 148-ми індексів значення p=0,010549, що дає підставу програмі
видавати результат Assignment = SUCCESS (успіх), що означає успішне
проходження тесту та підтверджує «випадковість» генерованої послідовності.</p>
      <p>Для послідовності 2 і 3 значення p є аналогічним, як і помітки про успішне
проходження даними послідовностями тесту Binary Matrix Rank.</p>
      <p>Наступний тест, що використовувався для перевірки випадковості
генерованих послідовностей, це Overlapping Template Matching Test. Основна
увага тесту приділяється кількості випадків попередньо заданих цільових рядків.
Даний тест використовує вікно m-біт для пошуку конкретного m-бітового
шаблону. Якщо шаблон не знайдено, вікно пропускає бітну позицію. Коли
шаблон знайдено, вікно пропускає лише один біт, перш ніж відновити пошук.</p>
      <p>Цей тест відкидає послідовності, які показують занадто багато або дуже мало
випадків m-пробілів, але може бути легко модифікований для виявлення
нерегулярних випадків будь-якого періодичного малюнка.</p>
      <p>Для першої генерованої послідовності відповідний результат
продемонстровано на рис. 4:</p>
      <p>Рис. 4. Overlapping Template Matching Test першої послідовності
З отриманих результатів ми бачимо значення p=0,049053 та значення
χ2=11,119950, що відповідають за успішне проходження генерованої
послідовності даного тесту. Для другої та третьої послідовності значення p та χ2
є аналогічними, що підтверджує їх випадковість.</p>
      <p>Наступний тест, яким було перевірено генеровані послідовності, був Serial
Test. Основна увага цього тесту сконцентрована на частотах всіх можливих
перекриваючих m-бітних шаблонів по всій послідовності. Мета цього тесту
полягає в тому, щоб визначити, чи є число входжень 2m m-біт приблизно таким
же, як було б очікувано для випадкової послідовності. Випадкові послідовності
однорідні, тобто кожен m-бітний шаблон має такий же шанс з’являтись, як і
будьякий інший m-розрядний шаблон. Варто звернути увагу, що для m=1 послідовний
тест еквівалентний частотному тесту.</p>
      <p>Серійний тест (генералізований) – це перелік процедур, що базується на
тестуванні однорідності розподілу моделей заданих довжин.</p>
      <p>У результаті проходження тесту першою послідовністю було отримано два
значення р, та відповідні значення ψ (рис. 5).</p>
      <p>Рис. 5. Serial Test першої послідовності
З отриманих результатів можна зробити висновок, що послідовність є
випадковою за Serial Test. Щодо послідовностей 2 і 3, то вони мають аналогічні
показники значень, що також підтверджує випадковість розробленого генератора
випадкових чисел.</p>
      <p>Останнім тестом, що проходять генеровані послідовності, є Linear Complexity
Test. Основна увага цього тесту приділена довжині регістру зсуву з лінійним
зворотним зв’язком (LFSR). Метою цього тесту є визначення, чи є послідовність
досить складною, щоб вважатись випадковою. Випадкові послідовності
характеризуються більш тривалими LFSR. Якщо LFSR занадто короткий, то
послідовність вважається невипадковою.</p>
      <p>Для першої генерованої послідовності в результаті виконання даного тесту
було отримано результати, показані на рис. 6.</p>
      <p>Рис. 6. Linear Complexity Test першої послідовності
За отриманими результатами p=0,167974 та χ2=9,101060 можна зробити
висновок, що генерована послідовність є випадковою. Щодо інших
послідовностей: для другої послідовності p=0,783217 та χ2=3,201098; для третьої
p=0,167974 та χ2=9,101060. Тобто, значення першого і третього розподілу
збігається, в той же час, значення другого розподілу відрізняється, проте, всі три
послідовності є випадковими.
4</p>
      <p>Висновки
1. Найкращі результати було продемонстровано в тестах Binary Matrix Rank та
Linear Complexity, де кожна із послідовностей мала власні значення p та χ2, що
давало можливість порівняти роботу генератора випадкових чисел в
однакових умовах, проте, при різних генерованих послідовностях. Не
зважаючи на відмінні результати, всі три послідовності успішно пройшли тест.
Загалом створений апаратний генератор випадкових чисел, згідно результатів
тестування пакетом NIST STS, можна вважити таким, що задовольняє вимоги
пройдених тестів.
2. Створена бібліотека генерації випадкових чисел може бути використана в
проектах, які мають потребу в високоякісних послідовностях випадкових
чисел. В майбутньому генератор випадкових чисел може бути вдосконалений
за рахунок використання більш чистого звуку та реалізації можливості вибору
користувачем розподілу, за яким генеруватимуться випадкові числа.
Список використаних джерел
References (translated and transliterated)</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Долотій</surname>
            <given-names>М</given-names>
          </string-name>
          . Г.
          <article-title>Генератор випадкових чисел з апаратним джерелом ентропії / Маргарита Геннадіївна Долотій</article-title>
          , Павло Володимирович Мерзликін // Новітні комп'ютерні технології.
          <source>- Кривий Ріг : Видавничий центр ДВНЗ «Криворізький національний університет»</source>
          ,
          <year>2017</year>
          . - Том
          <string-name>
            <surname>XV</surname>
          </string-name>
          .
          <source>- С</source>
          .
          <fpage>85</fpage>
          -
          <lpage>88</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Kelsey</surname>
            <given-names>J</given-names>
          </string-name>
          . Cryptanalytic Attacks on Pseudorandom Number Generators / John Kelsey, Bruce Schneier, David Wagner, Chris Hall // Fast Software Encryption. 5th International Workshop, FSE'
          <fpage>98</fpage>
          . Paris, France, March 23-25,
          <year>1998</year>
          : Proceedings / Ed. :
          <string-name>
            <given-names>Serge</given-names>
            <surname>Vaudenay</surname>
          </string-name>
          . -Berlin, Heidelberg : Springer-Verlag,
          <year>1998</year>
          . - P.
          <fpage>168</fpage>
          -
          <lpage>188</lpage>
          . - (
          <source>Lecture Notes in Computer Science</source>
          , vol.
          <volume>1372</volume>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Долгих</surname>
            <given-names>А</given-names>
          </string-name>
          . О.
          <article-title>Генератор псевдо випадкових чисел [Електронний ресурс] / А</article-title>
          . О. Долгих // Тези Всеукраїнської науково
          <article-title>-практичної on-line конференції аспірантів, молодих учених та студентів, присвяченої Дню науки</article-title>
          .
          <fpage>10</fpage>
          -
          <lpage>12</lpage>
          травня
          <year>2017</year>
          року // Конференції Житомирського державного технологічного університету : матеріали конференцій,
          <source>проведених в ЖДТУ</source>
          . -
          <year>2017</year>
          . - Режим доступу : https://conf.ztu.edu.ua/wpcontent/uploads/2017/06/123-
          <fpage>1</fpage>
          .pdf.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Soto J. Randomness</surname>
          </string-name>
          <article-title>Testing of the Advanced Encryption Standard Candidate Algorithms</article-title>
          [Electronic resource] / Juan Soto, Jr. - Gaithersburg : National Institute of Standards and Technology,
          <year>September 1999</year>
          . - 10 p.
          <article-title>- Access mode</article-title>
          : https://nvlpubs.nist.gov/nistpubs/Legacy/IR/nistir6390.pdf. -
          <source>(NISTIR 6390)</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <source>NIST SP 800-22: Documentation and Software - Random Bit Generation | CSRC [Electronic resource]. - 2018</source>
          . - Access mode : https://csrc.nist.gov/Projects/Random-BitGeneration/
          <article-title>Documentation-and-</article-title>
          <string-name>
            <surname>Software</surname>
          </string-name>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bassham L. E. A Statistical Test</surname>
          </string-name>
          <article-title>Suite for Random and Pseudorandom Number Generators for Cryptographic Applications</article-title>
          [Electronic resource] / Lawrence E.
          <string-name>
            <surname>Bassham</surname>
            <given-names>III</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Andrew L. Rukhin</surname>
          </string-name>
          , Juan Soto,
          <string-name>
            <surname>James R. Nechvatal</surname>
            , Miles E. Smid, Elaine Barker,
            <given-names>Stefan D.</given-names>
          </string-name>
          <string-name>
            <surname>Leigh</surname>
            ,
            <given-names>Mark</given-names>
            Levenson, Mark
          </string-name>
          <string-name>
            <surname>Vangel</surname>
          </string-name>
          , David L. Banks, Alan Heckert, James Dray, San Vo. -
          <source>Gaithersburg : National Institute of Standards and Technology, September</source>
          <volume>16</volume>
          ,
          <year>2010</year>
          . - 131 p.
          <article-title>- Access mode</article-title>
          : https://ws680.nist.gov/publication/get_pdf.cfm?pub_id=
          <fpage>906762</fpage>
          .
          <string-name>
            <surname>- (Special Publication (NIST SP</surname>
          </string-name>
          ) -
          <volume>800</volume>
          -22
          <source>Rev 1a)</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          1.
          <string-name>
            <surname>Dolotii</surname>
            ,
            <given-names>M.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merzlykin</surname>
            ,
            <given-names>P.V.</given-names>
          </string-name>
          :
          <article-title>Henerator vypadkovykh chysel z aparatnym dzherelom entropii (The random number generator with hardware source of entropy)</article-title>
          .
          <article-title>New computer technology</article-title>
          .
          <volume>15</volume>
          ,
          <fpage>85</fpage>
          -
          <lpage>88</lpage>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          2.
          <string-name>
            <surname>Kelsey</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schneier</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wagner</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hall</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Cryptanalytic Attacks on Pseudorandom Number Generators</article-title>
          . In: Vaudenay,
          <string-name>
            <surname>S</surname>
          </string-name>
          . (ed.)
          <source>Fast Software Encryption, 5th International Workshop</source>
          , FSE'
          <fpage>98</fpage>
          . Paris, France, March 23-25,
          <year>1998</year>
          . Lecture Notes in Computer Science, vol.
          <volume>1372</volume>
          , pp.
          <fpage>168</fpage>
          -
          <lpage>188</lpage>
          . Springer-Verlag, Berlin, Heidelberg (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          3.
          <string-name>
            <surname>Dolhykh</surname>
            ,
            <given-names>A.O.</given-names>
          </string-name>
          :
          <article-title>Henerator psevdo vypadkovykh chysel (Generator of pseudorandom numbers)</article-title>
          . In:
          <article-title>The theses of the All-Ukrainian scientific and practical on-line conference of postgraduates, young scientists and students devoted to the Day of Science</article-title>
          , ZhDTU, Zhytomyr,
          <fpage>10</fpage>
          -
          <lpage>12</lpage>
          May
          <year>2017</year>
          . https://conf.ztu.edu.ua/wp-content/uploads/2017/06/123-
          <fpage>1</fpage>
          .pdf (
          <year>2017</year>
          ).
          <source>Accessed 12 Nov 2018</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          4.
          <string-name>
            <surname>Soto</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Jr</surname>
          </string-name>
          .:
          <article-title>Randomness Testing of the Advanced Encryption Standard Candidate Algorithms</article-title>
          . National Institute of Standards and Technology, Gaithersburg,
          <year>September 1999</year>
          .
          <article-title>(NISTIR 6390)</article-title>
          . https://nvlpubs.nist.gov/nistpubs/Legacy/IR/nistir6390.pdf (
          <year>1999</year>
          ).
          <source>Accessed 30 Nov 2018</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          5.
          <source>NIST SP 800-22: Documentation and Software - Random Bit Generation | CSRC</source>
          . https://csrc.nist.gov/Projects/Random-Bit-Generation/
          <article-title>Documentation-and-</article-title>
          <string-name>
            <surname>Software</surname>
          </string-name>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bassham</surname>
            <given-names>III</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>L.E.</given-names>
            ,
            <surname>Rukhin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.L.</given-names>
            ,
            <surname>Soto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Nechvatal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.R.</given-names>
            ,
            <surname>Smid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.E.</given-names>
            ,
            <surname>Barker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Leigh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.D.</given-names>
            ,
            <surname>Levenson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Vangel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Banks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.L.</given-names>
            ,
            <surname>Heckert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Dray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Vo</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.:</surname>
          </string-name>
          <article-title>A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications</article-title>
          .
          <source>National Institute of Standards and Technology, Gaithersburg, September</source>
          <volume>16</volume>
          ,
          <string-name>
            <surname>2010 (Special Publication (NIST SP</surname>
          </string-name>
          ) -
          <volume>800</volume>
          -22
          <source>Rev 1a)</source>
          . https://ws680.nist.gov/publication/get_pdf.cfm?pub_id=
          <volume>906762</volume>
          (
          <year>2010</year>
          ).
          <source>Accessed 30 Nov 2018</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>