/dev/random (original) (raw)
/dev/random je v informatice název speciálního souboru v unixových systémech, který je rozhraním (API) pro výstup generátoru pseudonáhodných čísel. V Linuxu je generátor implementován uvnitř jádra, kde je též shromažďována entropie a toto rozhraní je tzv. blokující, což znamená, že při nedostatku entropie se čeká, dokud jí není opět dostatek, a volající program do té doby nepokračuje. Neblokující variantou je pak /dev/urandom, kdy je při nedostatku entropie programu vráceno „méně náhodné číslo“. V jiných systémech může být implementace odlišná.
Property | Value |
---|---|
dbo:abstract | /dev/random je v informatice název speciálního souboru v unixových systémech, který je rozhraním (API) pro výstup generátoru pseudonáhodných čísel. V Linuxu je generátor implementován uvnitř jádra, kde je též shromažďována entropie a toto rozhraní je tzv. blokující, což znamená, že při nedostatku entropie se čeká, dokud jí není opět dostatek, a volající program do té doby nepokračuje. Neblokující variantou je pak /dev/urandom, kdy je při nedostatku entropie programu vráceno „méně náhodné číslo“. V jiných systémech může být implementace odlišná. (cs) In Unix-like operating systems, /dev/random and /dev/urandom are special files that serve as cryptographically secure pseudorandom number generators. They allow access to environmental noise collected from device drivers and other sources. /dev/random typically blocked if there was less entropy available than requested; more recently (see below, different OS's differ) it usually blocks at startup until sufficient entropy has been gathered, then unblocks permanently. The /dev/urandom device typically was never a blocking device, even if the pseudorandom number generator seed was not fully initialized with entropy since boot. Not all operating systems implement the same methods for /dev/random and /dev/urandom. (en) /dev/random ist unter vielen unixoiden Betriebssystemen eine zeichenorientierte virtuelle Gerätedatei, über das Programme auf einen systemweiten Zufallszahlengenerator von hoher Qualität zugreifen können. Da für netzwerkorientierte Systeme wie Unix Kryptographie-Dienste und damit Zufallszahlen eine bedeutende Rolle spielen, kommt dieser Datei und dem dahinterstehenden Treiber eine wichtige Bedeutung zu. Der Zufallsgenerator sammelt von Gerätetreibern und anderen Quellen in einem Entropie-„Pool“. Der Generator speichert auch eine Abschätzung über die Anzahl der Bits im Entropie-Pool. Aus diesem „Pool“ werden die Zufallszahlen generiert. Beim Lesen gibt /dev/random nur solange Zufallszahlen zurück, bis die abgeschätzte Entropiemenge erschöpft ist; dann blockieren Lesezugriffe auf /dev/random, bis zusätzliches Umgebungsrauschen erhalten wurde. /dev/random sollte ausreichend sein für Anwendungszwecke, die auf eine sehr hohe Qualität der Zufälligkeit angewiesen sind, wie etwa Verschlüsselung (beispielsweise One-Time-Pads oder Schlüsselerzeugung). Aus Geschwindigkeitsgründen wird in der Praxis oft nur der „Seed“ eines Pseudo-Zufallszahlengenerators von /dev/random gelesen (z. B. in OpenSSL, PGP und GnuPG). Der aktuelle Füllstand des Entropie-Pools lässt sich unter Linux aus der Datei /proc/sys/kernel/random/entropy_avail ermitteln. Eine Ausgabe der Datei liefert die verfügbare Entropie in Bit, wobei das Maximum von 4096 Bit einem vollständig gefüllten „Pool“ entspricht. (de) En sistemas operativos tipo Unix, /dev/random es un archivo especial que sirve como generador de números aleatorios, o de números pseudoaleatorios. Permite el acceso al ruido ambiental recogido de dispositivos y otras fuentes. No todos los sistemas operativos implementan la misma semántica para /dev/random. (es) Dans les systèmes d'exploitation de type Unix, /dev/random est un fichier spécial qui sert de générateur de nombres aléatoires (ou éventuellement de générateur de nombres pseudo-aléatoires). Il utilise comme source d'aléa certaines données de l'environnement recueillies auprès de pilotes de périphériques et d'autres sources, et les traite à l'aide de fonctions de hachage cryptographiques. La lecture du fichier est bloquée quand l'activité du système (entropie) n'est pas suffisante. /dev/urandom fonctionne de façon analogue en dehors du fait que la lecture n'est pas bloquante ; l'aléa produit est donc de moins bonne qualité. Tous les systèmes d'exploitation ne mettent pas en œuvre la sémantique décrite ici pour /dev/random et /dev/urandom. Linux a été le premier système d'exploitation à mettre en œuvre un véritable générateur de nombres aléatoires de cette façon. On utilise /dev/random pour engendrer des clés en cryptographie, par exemple pour le chiffrement asymétrique. (fr) /dev/random はUnix系オペレーティングシステム (OS) における擬似デバイスの一種であり、乱数生成器として機能する。デバイスドライバその他の情報源から集めた環境ノイズを利用して、真の乱数性を得るのが目的である。全てのUnix系OSが /dev/random およびそれに類する機能を実装しているわけではない。また、それぞれの実装が、同じように振舞うわけでもない。このような擬似デバイスを実装した最初のOSはLinuxであった。 (ja) /dev/random, /dev/urandom, /dev/arandom은 유닉스 계열 운영 체제에서 차단 방식의 유사난수 발생기의 역할을 수행하는 특수 파일이다. 장치 드라이버와 기타 소스로부터 모은 환경적 노이즈로의 접근을 허용한다. 모든 운영 체제가 /dev/random과 동일한 시맨틱을 구현하고 있지는 않다. (ko) Nei sistemi operativi Unix e Unix-like, /dev/random (random device, dispositivo casuale) è un (ossia non fisicamente presente su memoria di massa) con la caratteristica di restituire un valore numerico casuale o pseudo-casuale ogni volta che vi si accede. Consente di accedere al rumore ambientale raccolto dai dispositivi collegati e da altre sorgenti. /dev/random viene utilizzato per esempio per il test di applicazioni che operano su numeri casuali, o come sistema per individuare errori di programmazione (bug) su input casuali. Può essere impiegato anche per simulare il "rumore" (vale a dire la presenza di dati non corretti) nelle sequenze di input verso i driver di periferica. Un diverso utilizzo si ha nel campo della crittografia dove /dev/random può essere utilizzato per generare chiavi crittografiche casuali sia ad uso del sistema operativo che delle applicazioni. Non tutti i sistemi operativi implementano la stessa semantica per /dev/random. Linux è stato il primo sistema Unix-like a implementare /dev/random come generatore di numeri casuali. Implementazioni simili si trovano in FreeBSD, Solaris, macOS, NetBSD, OpenBSD, Tru64 UNIX 5.1B, AIX 5.2, e HP-UX 11i v2. Nei sistemi Windows della famiglia NT funzioni simili vengono svolte dal file ksecdd.sys. (it) /dev/random – wirtualne urządzenie w systemach operacyjnych z rodziny Unix, pełniące funkcję generatora losowych liczb z losowością pochodzącą ze sterowników urządzeń i innych źródeł. Przy odczycie z /dev/random wygenerowane zostaną przypadkowe bajty. /dev/random jest odpowiednie w przypadku wymaganej wysokiej przypadkowości danych oraz odporności na przewidywalność kolejnych danych, np. przy tworzeniu kluczy kryptograficznych. /dev/random pobiera kolejne dane z bufora. W przypadku jego opróżnienia, działanie wątku który czyta z ww. pliku zostaje wstrzymane. Można to łatwo sprawdzić wpisując do wiersza poleceń: $ cat /dev/random Z tego powodu /dev/random nie nadaje się do generowania wielu losowych liczb w krótkim czasie. Odpowiednikiem /dev/random do generowania dużych ilości danych pseudolosowych (czyli o mniejszej przypadkowości danych oraz odporności na przewidywalność kolejnych danych) jest /dev/urandom (od unblocking), które używa funkcji haszujących. Jednak większość programów kryptograficznych (np. OpenSSL, PGP i GnuPG) używa własnego generatora losowych danych pobierających tzw. seed z /dev/random. (pl) Em sistemas operacionais do tipo Unix, /dev/random, /dev/urandom e /dev/arandom são arquivos especiais que servem como geradores de números pseudo-aleatórios. Eles permitem acesso aos ruídos do ambiente coletados de controladores de dispositivos e outras fontes. /dev/random normalmente se houver menos entropia disponível do que o solicitado. /dev/urandom normalmente nunca bloqueia, mesmo se a semente do gerador de números pseudo-aleatórios não tenha sido completamente inicializada com entropia desde a inicialização (boot). /dev/arandom bloqueia após a inicialização até que a semente tenha sido inicializada com segurança, com entropia suficiente, e então jamais bloqueia novamente. Nem todos os sistemas operacionais implementam as mesmas semânticas para /dev/random e /dev/urandom e apenas alguns fornecem /dev/arandom. (pt) /dev/random и /dev/urandom — специальные символьные псевдоустройства в некоторых UNIX-подобных системах, впервые появившиеся в ядре Linux версии 1.3.30. Они предоставляют интерфейс к системному генератору случайных чисел, который выводит шум из драйверов устройств и других источников в «хаотичный» пул (англ. entropy pool). Генератор также сохраняет необходимое количество битов шума в этом пуле и формирует из него случайную либо псевдослучайную последовательность чисел. Начиная с версии ядра Linux 4.8, генератор urandom был переведен на использование потокового шифра ChaCha20 вместо SP800-90A DRBG (ru) /dev/random та /dev/urandom — спеціальні символьні псевдопристрої в деяких UNIX-подібних системах, що вперше з'явилися в ядрі Linux версії 1.3.30. Вони надають інтерфейс до системного генератора випадкових чисел, який виводить «шуми» з драйверів пристроїв та інших джерел у «хаотичний» пул (англ. entropy pool). Генератор також зберігає необхідну кількість бітів шуму в цьому пулі і формує з нього випадкові числа. Необхідність використання «шумів» з драйверів пов'язана з обмеженнями генераторів псевдовипадкових чисел. Воно полягає в тому, що якщо генератор складається з кінцевої множини елементів, то кількість станів такого генератора також є кінцевою. Це значить, що на основі попередньої історії використання генератора можна «вгадати» (наперед обчислити) наступні випадкові числа. Використання драйверів пристроїв збільшує кількість елементів системи шляхом залучення в систему додаткових елементів - користувача комп'ютера (через клавіатуру і мишу), комп'ютерної мережі, контролерів дисководів тощо, сигнали від яких враховуються як зовнішній непередбачуваний «шум». При читанні даних у пристрої /dev/random створюються тільки випадкові байти, що складаються з бітів шуму «хаотичного» пулу. Пристрій /dev/random може бути необхідний в задачах, які вимагають дуже високого коефіцієнта випадковості, наприклад, при створенні ключа доступу і т. п. Якщо «хаотичний» пул спорожнів, читання /dev/random блокується, поки необхідну кількість бітів в пулі не буде створено. Читання даних з пристрою /dev/urandom поверне стільки байтів, скільки було запитано. В результаті, якщо в пулі було недостатньо бітів, теоретично можливо буде знайти уразливість алгоритму, що використовує цей пристрій. Якщо це важливо, слід використовувати /dev/random. (uk) /dev/random在类UNIX系统中是一个特殊的设备文件,可以用作随机数发生器或伪随机数发生器。 (zh) |
dbo:thumbnail | wiki-commons:Special:FilePath/Hexdump_of_dev_urandom.png?width=300 |
dbo:wikiPageExternalLink | http://www.2uo.de/myths-about-urandom/ https://linux.die.net/man/4/urandom, https://github.com/thomasbiege/papers/raw/master/random-device-analysis.pdf |
dbo:wikiPageID | 776128 (xsd:integer) |
dbo:wikiPageLength | 20304 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1122706052 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:PowerShell dbr:Entropy-supplying_system_calls dbr:Entropy_(computing) dbr:Unix-like dbr:Device_driver dbr:Ioctl dbc:Device_file dbc:Random_number_generation dbc:Unix_file_system_technology dbr:Cryptographic_hash_function dbr:Cryptographic_pseudorandom_number_generator dbr:Cryptographically_secure_pseudorandom_number_generator dbr:SHA-1 dbr:SHA-256 dbr:OpenBSD_Cryptographic_Framework dbr:FreeBSD dbr:GitHub dbr:CryptGenRandom dbr:Theodore_Ts'o dbr:Linux dbr:Linux_kernel dbr:MacOS dbr:Embedded_system dbr:Hardware_random_number_generator dbr:Kernel_(operating_system) dbr:Standard_streams dbr:Windows_NT dbr:Diskless_node dbr:Cygwin dbr:Daniel_J._Bernstein dbr:Fortuna_(PRNG) dbr:dev dbr:Asynchronous_I/O dbr:Bit dbr:Blocking_(computing) dbr:Diehard_tests dbr:Cipher dbr:IOS dbr:NetBSD dbr:OpenBSD dbr:Operating_system dbr:RC4 dbr:Yarrow_algorithm dbr:ChaCha20 dbr:Man_page dbr:Export_of_cryptography dbr:Live_CD dbr:Stream_cipher dbr:Entropy_pool dbr:RtlGenRandom dbr:Special_file dbr:File:Hexdump_of_dev_urandom.png dbr:File:Rngtest_FIPS-140-2_screenshot.png |
dbp:date | December 2020 (en) |
dbp:reason | This isn't the reason that writing non-random data is harmless. 1. The non-random data mixes with the random data in a way that keeps only the randomness, like XOR? That would make it harmless? 2. The entropy estimate is not increased when you write to it, according to https://linux.die.net/man/4/urandom, but it DOES affect the output, so that isn't what makes it harmless. 3. Only privileged users can update the entropy estimate, which doesn't make it harmless? (en) |
dbp:wikiPageUsesTemplate | dbt:Cite_web dbt:Clarify dbt:Code dbt:Dubious dbt:Mono dbt:Reflist dbt:Short_description dbt:Tmath |
dcterms:subject | dbc:Device_file dbc:Random_number_generation dbc:Unix_file_system_technology |
gold:hypernym | dbr:File |
rdf:type | dbo:Software yago:WikicatComputerFileSystems yago:Abstraction100002137 yago:Arrangement105726596 yago:ClassificationSystem105727220 yago:Cognition100023271 yago:FileSystem105732614 yago:PsychologicalFeature100023100 yago:Structure105726345 |
rdfs:comment | /dev/random je v informatice název speciálního souboru v unixových systémech, který je rozhraním (API) pro výstup generátoru pseudonáhodných čísel. V Linuxu je generátor implementován uvnitř jádra, kde je též shromažďována entropie a toto rozhraní je tzv. blokující, což znamená, že při nedostatku entropie se čeká, dokud jí není opět dostatek, a volající program do té doby nepokračuje. Neblokující variantou je pak /dev/urandom, kdy je při nedostatku entropie programu vráceno „méně náhodné číslo“. V jiných systémech může být implementace odlišná. (cs) In Unix-like operating systems, /dev/random and /dev/urandom are special files that serve as cryptographically secure pseudorandom number generators. They allow access to environmental noise collected from device drivers and other sources. /dev/random typically blocked if there was less entropy available than requested; more recently (see below, different OS's differ) it usually blocks at startup until sufficient entropy has been gathered, then unblocks permanently. The /dev/urandom device typically was never a blocking device, even if the pseudorandom number generator seed was not fully initialized with entropy since boot. Not all operating systems implement the same methods for /dev/random and /dev/urandom. (en) En sistemas operativos tipo Unix, /dev/random es un archivo especial que sirve como generador de números aleatorios, o de números pseudoaleatorios. Permite el acceso al ruido ambiental recogido de dispositivos y otras fuentes. No todos los sistemas operativos implementan la misma semántica para /dev/random. (es) /dev/random はUnix系オペレーティングシステム (OS) における擬似デバイスの一種であり、乱数生成器として機能する。デバイスドライバその他の情報源から集めた環境ノイズを利用して、真の乱数性を得るのが目的である。全てのUnix系OSが /dev/random およびそれに類する機能を実装しているわけではない。また、それぞれの実装が、同じように振舞うわけでもない。このような擬似デバイスを実装した最初のOSはLinuxであった。 (ja) /dev/random, /dev/urandom, /dev/arandom은 유닉스 계열 운영 체제에서 차단 방식의 유사난수 발생기의 역할을 수행하는 특수 파일이다. 장치 드라이버와 기타 소스로부터 모은 환경적 노이즈로의 접근을 허용한다. 모든 운영 체제가 /dev/random과 동일한 시맨틱을 구현하고 있지는 않다. (ko) /dev/random在类UNIX系统中是一个特殊的设备文件,可以用作随机数发生器或伪随机数发生器。 (zh) /dev/random ist unter vielen unixoiden Betriebssystemen eine zeichenorientierte virtuelle Gerätedatei, über das Programme auf einen systemweiten Zufallszahlengenerator von hoher Qualität zugreifen können. Da für netzwerkorientierte Systeme wie Unix Kryptographie-Dienste und damit Zufallszahlen eine bedeutende Rolle spielen, kommt dieser Datei und dem dahinterstehenden Treiber eine wichtige Bedeutung zu. (de) Dans les systèmes d'exploitation de type Unix, /dev/random est un fichier spécial qui sert de générateur de nombres aléatoires (ou éventuellement de générateur de nombres pseudo-aléatoires). Il utilise comme source d'aléa certaines données de l'environnement recueillies auprès de pilotes de périphériques et d'autres sources, et les traite à l'aide de fonctions de hachage cryptographiques. La lecture du fichier est bloquée quand l'activité du système (entropie) n'est pas suffisante. /dev/urandom fonctionne de façon analogue en dehors du fait que la lecture n'est pas bloquante ; l'aléa produit est donc de moins bonne qualité. (fr) Nei sistemi operativi Unix e Unix-like, /dev/random (random device, dispositivo casuale) è un (ossia non fisicamente presente su memoria di massa) con la caratteristica di restituire un valore numerico casuale o pseudo-casuale ogni volta che vi si accede. Consente di accedere al rumore ambientale raccolto dai dispositivi collegati e da altre sorgenti. /dev/random viene utilizzato per esempio per il test di applicazioni che operano su numeri casuali, o come sistema per individuare errori di programmazione (bug) su input casuali. Può essere impiegato anche per simulare il "rumore" (vale a dire la presenza di dati non corretti) nelle sequenze di input verso i driver di periferica. Un diverso utilizzo si ha nel campo della crittografia dove /dev/random può essere utilizzato per generare chiav (it) /dev/random – wirtualne urządzenie w systemach operacyjnych z rodziny Unix, pełniące funkcję generatora losowych liczb z losowością pochodzącą ze sterowników urządzeń i innych źródeł. Przy odczycie z /dev/random wygenerowane zostaną przypadkowe bajty. /dev/random jest odpowiednie w przypadku wymaganej wysokiej przypadkowości danych oraz odporności na przewidywalność kolejnych danych, np. przy tworzeniu kluczy kryptograficznych. $ cat /dev/random (pl) Em sistemas operacionais do tipo Unix, /dev/random, /dev/urandom e /dev/arandom são arquivos especiais que servem como geradores de números pseudo-aleatórios. Eles permitem acesso aos ruídos do ambiente coletados de controladores de dispositivos e outras fontes. /dev/random normalmente se houver menos entropia disponível do que o solicitado. /dev/urandom normalmente nunca bloqueia, mesmo se a semente do gerador de números pseudo-aleatórios não tenha sido completamente inicializada com entropia desde a inicialização (boot). /dev/arandom bloqueia após a inicialização até que a semente tenha sido inicializada com segurança, com entropia suficiente, e então jamais bloqueia novamente. Nem todos os sistemas operacionais implementam as mesmas semânticas para /dev/random e /dev/urandom e apenas a (pt) /dev/random та /dev/urandom — спеціальні символьні псевдопристрої в деяких UNIX-подібних системах, що вперше з'явилися в ядрі Linux версії 1.3.30. Вони надають інтерфейс до системного генератора випадкових чисел, який виводить «шуми» з драйверів пристроїв та інших джерел у «хаотичний» пул (англ. entropy pool). Генератор також зберігає необхідну кількість бітів шуму в цьому пулі і формує з нього випадкові числа. (uk) /dev/random и /dev/urandom — специальные символьные псевдоустройства в некоторых UNIX-подобных системах, впервые появившиеся в ядре Linux версии 1.3.30. Они предоставляют интерфейс к системному генератору случайных чисел, который выводит шум из драйверов устройств и других источников в «хаотичный» пул (англ. entropy pool). Генератор также сохраняет необходимое количество битов шума в этом пуле и формирует из него случайную либо псевдослучайную последовательность чисел. (ru) |
rdfs:label | /dev/random (cs) /dev/random (de) /dev/random (en) /dev/random (es) /dev/random (fr) /dev/random (it) /dev/random (ko) /dev/random (ja) /dev/random (pl) /dev/random (pt) /dev/random и /dev/urandom (ru) /dev/random (uk) /dev/random (zh) |
owl:sameAs | freebase:/dev/random yago-res:/dev/random wikidata:/dev/random dbpedia-cs:/dev/random dbpedia-de:/dev/random dbpedia-es:/dev/random dbpedia-fi:/dev/random dbpedia-fr:/dev/random dbpedia-it:/dev/random dbpedia-ja:/dev/random dbpedia-ko:/dev/random dbpedia-pl:/dev/random dbpedia-pt:/dev/random dbpedia-ru:/dev/random dbpedia-sr:/dev/random dbpedia-tr:/dev/random dbpedia-uk:/dev/random dbpedia-zh:/dev/random https://global.dbpedia.org/id/4tdT8 |
prov:wasDerivedFrom | wikipedia-en:dev/random?oldid=1122706052&ns=0 |
foaf:depiction | wiki-commons:Special:FilePath/Hexdump_of_dev_urandom.png wiki-commons:Special:FilePath/Rngtest_FIPS-140-2_screenshot.png |
foaf:isPrimaryTopicOf | wikipedia-en:dev/random |
is dbo:wikiPageDisambiguates of | dbr:Random_(disambiguation) |
is dbo:wikiPageRedirects of | dbr:Urandom dbr:Dev-random dbr:Dev/random dbr:dev/urandom |
is dbo:wikiPageWikiLink of | dbr:Entropy-supplying_system_calls dbr:Entropy_(computing) dbr:Dd_(Unix) dbr:Cypherpunk dbr:Device_file dbr:Cryptographically_secure_pseudorandom_number_generator dbr:Salsa20 dbr:One-time_pad dbr:Random_password_generator dbr:RDRAND dbr:CryptGenRandom dbr:LibreSSL dbr:Hardware_random_number_generator dbr:Fortuna_(PRNG) dbr:Random_(disambiguation) dbr:Open_Sound_System dbr:Yarrow_algorithm dbr:Random_number_generation dbr:Urandom dbr:Dev-random dbr:Dev/random dbr:dev/urandom |
is foaf:primaryTopic of | wikipedia-en:dev/random |