Генератор випадкових чисел ядра

ядрі Linux реалізований генератор випадкових чисел, який теоретично може генерувати істинно випадкові числа Генератор випадкових чисел собира-

ет в

пул ентропії

шуми зовнішнього середовища, які надходять з драйверів пристроїв

Цей пул доступний як у ядрі, так і для користувача процесів як джерело даних, які не тільки випадкові усередині системи, а й недетермінірованного для зовнішніх джерел атак Такі випадкові числа використовуються різними зовнішніми додатками, особливо для цілей криптографії

Істинно випадкові числа відрізняються від псевдовипадкових чисел, які генеруються бібліотечними функціями мови С Псевдовипадкові числа створюються за допомогою детермінованих функцій Хоча такі функції і можуть генерувати послідовності чисел, які мають деякі властивості істинно випадкових чисел, проте такі числа тільки статистично випадкові Псевдовипадкові числа є детермінованими, тому що якщо відомо хоча б одне число послідовності, то можна визначити і всі інші Якщо відомо так зване породжує число послідовності (seed), то зазвичай по ньому визначається і вся послідовність Для додатків, які вимагають істинно випадкових чисел, як, наприклад, криптографія, селестічні числа зазвичай не підходять

На відміну від псевдовипадкових чисел, істинно випадкові цифри не залежать від тієї функції, яка використовується для їх генерації Більш того, якщо відомий деякий член послідовності істинно випадкових чисел, то зовнішній спостерігач не зможе визначити, які числа видаватиме генератор в майбутньому, тобто такий генератор недетермінірованний

Фізичний термін ентропія- це міра безладу і випадковості в будь-якій системі Ентропія вимірюється в одиницях енергії на одиницю температури (Джоуль на градус Кельвіна) Коли Клод Шеннон (Claude Shennon) 1, творець інформаційної теорії, шукав термін для подання випадковості інформації, великий

1 Клод шенно н (30 квітня 1916-24 люті я 2001) працював інженером м в компанії Bell Labs У його наиболе е відомо й роботі Математична теорія і звязку, опублікованій в 1948 році, вперше були розроблені основи інформаційно ї теори і і було введено поняти е ентропія і Шеннона Шенно н також любив кататися на одноколісному велосипеді

математик Джон фон Нейман (John von Neumann) 2 запропонував йому використовувати термін ентропія, тому що ніхто толком не розуміє, що за цим поняттям криється Шеннон погодився, і сьогодні це звучить якентропія Шеннона Деякі вчені вважають, що таке подвійну назву тільки вносить плутанину, і коли мова йде про інформацію, то використовують термін невизначеність Розробники ядра, навпаки, вважають, що ентропія це круто, і підтримують використання даного терміну

При розгляді генераторів випадкових чисел поняття ентропії Шеннона є дуже важливим Ця характеристика вимірюється в бітах на символ Високе значення ентропії означає, що в послідовності символів мало корисної (точніше, передбачуваною) інформації і багато випадкового сміття. Ядро підтримує пул ентропії, який поповнюється даними, що виникають в результаті недетермінірованних подій, повязаних з апаратними пристроями В ідеалі, цей пул містить повністю випадкові дані Для того щоб мати уявлення про значення ентропії пулу, ядро ​​постійно обчислює міру невизначеності даних в пулі У міру того як ядро ​​додає дані в пул, воно оцінює міру випадковості додаються даних І навпаки, у міру того як дані витягуються з пулу, ядро зменшує значення оцінки ентропії Відповідна кількісна характеристика називається оцінкою ентропії Якщо значення оцінки ентропії стає рівним нулю, то ядро ​​може відмовитися виконувати запит з зчитування даних з пулу

був запропонований у версії 1330 і знаходиться у файлі drivers / char / randomс

Джерело: Лав, Роберт Розробка ядра Linux, 2-е видання : Пер з англ – М: ТОВ «ІД Вільямс »2006 – 448 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*