RDRAND - RDRAND

RDRAND ("tasodifiy o'qish" uchun; Intel Secure Key Technology,[1] ilgari sifatida tanilgan Bull Mountain[2]) an ko'rsatma dan tasodifiy sonlarni qaytarish uchun Intel chipdagi apparat tasodifiy sonlar generatori chipli entropiya manbai tomonidan ekilgan.[3] RDRAND mavjud Ayvi ko'prigi protsessorlar[a] va qismidir Intel 64 va IA-32 ko'rsatmalar to'plami arxitekturalari. AMD 2015 yil iyun oyida ko'rsatmani qo'llab-quvvatladi.[5]

Tasodifiy sonlar generatori xavfsizlik va kriptografik standartlarga mos keladi NIST SP 800-90A,[6] FIPS 140-2 va ANSI X9.82.[3] Intel, shuningdek, Cryptography Research Inc kompaniyasidan 2012 yilda tasodifiy sonlar ishlab chiqaruvchisini ko'rib chiqishni so'radi, natijada u qog'ozga chiqdi Intelning Ivy Bridge raqamli tasodifiy raqamlarni ishlab chiqaruvchisi tahlili.[7]

RDSEED ga o'xshash RDRAND va entropiya hosil qiluvchi apparatga past darajadagi kirishni ta'minlaydi. The RDSEED generator va protsessorga ko'rsatma urug ' bilan mavjud Intel Broadwell protsessorlari[8] va AMD Zen protsessorlari.[9]

Umumiy nuqtai

The CPUID ko'rsatmasi yordamida tekshirilishi mumkin markaziy protsessor (CPU) qo'llab-quvvatlaydi RDRAND ikkala AMD va Intel protsessorlari bo'yicha ko'rsatma. Agar qo'llab-quvvatlansa, ECX registrining 30 biti CPUID standart funktsiyasini chaqirgandan so'ng o'rnatiladi 01H.[10] Xuddi shu test yordamida AMD protsessorlari funktsiya uchun tekshiriladi.[11] RDSEED mavjudligini shunga o'xshash tarzda Intel protsessorlarida tekshirish mumkin. Agar RDSEED qo'llab-quvvatlanadi, EBX registrining biti CPUID standart funktsiyasini chaqirgandan so'ng o'rnatiladi 07H.[12]

Uchun opcode RDRAND bu 0x0F 0xC7, so'ngra maqsadli registrni belgilaydigan va ixtiyoriy ravishda 64 bitli rejimda REX prefiksi bilan birlashtirilgan ModRM bayti.[13]

Intel xavfsiz kalit bu Intel ikkalasining ham nomi RDRAND ko'rsatma va asosiy narsa tasodifiy sonlar generatori (RNG) apparatni amalga oshirish,[3] rivojlanish jarayonida "Bull Mountain" kodi bilan nomlangan.[14] Intel ularning RNG-ni "raqamli tasodifiy raqamlar ishlab chiqaruvchisi" yoki DRNG deb ataydi. Jeneratör apparat entropiyasi manbai tomonidan ishlab chiqarilgan 256-bitli xom entropiya namunalarini juftligini oladi va ularni an ga qo'llaydi Kengaytirilgan shifrlash standarti (AES) (ichida CBC-MAC ularni bitta 256 bitli shartli entropiya namunasiga tushiradigan konditsioner. Chaqirilgan deterministik tasodifiy bit generatori CTR_DRBG ichida belgilangan NIST SP 800-90A konditsionerdan chiqishi bilan urug'lantirilib, ularga murojaat qilgan dasturlarga kriptografik xavfsiz tasodifiy raqamlarni taqdim etadi RDRAND ko'rsatma.[3][14] Uskunalar urug'lik qiymatini o'zgartirishdan oldin maksimal 511 128 bitli namunalarni chiqaradi. Dan foydalanish RDSEED operatsiya AES-CBC-MAC-dan shartli 256-bitli namunalarga kirishni ta'minlaydi.

The RDSEED Intel Secure Key-ga boshqa yolg'on tasodifiy raqamlar generatorini ekish uchun ko'rsatma qo'shildi,[15] mavjud Broadwell CPU. Uchun entropiya manbai RDSEED ko'rsatma o'z-o'zidan ishlaydigan sxema bo'yicha asenkron ishlaydi va 3 gigagertsli tezlikda bitlarning tasodifiy oqimini chiqarish uchun silikon ichidagi issiqlik shovqinidan foydalanadi,[16] olingan 6,4 Gbit / s dan sekinroq RDRAND (ikkala stavka hammasi o'rtasida taqsimlanadi) yadrolari va iplar ).[17] The RDSEED ko'rsatma urug'lik uchun mo'ljallangan a dasturiy ta'minot PRNG o'zboshimchalik kengligi, ammo RDRAND shunchaki yuqori sifatli tasodifiy raqamlarni talab qiladigan dasturlar uchun mo'ljallangan. Agar kriptografik xavfsizlik talab etilmasa, PRNG kabi dasturiy ta'minot Xorshift odatda tezroq.[18]

Ishlash

Intel Core i7-7700K, 4500 MGts (45 x 100 MGts) protsessorda (Kaby Lake-S mikroarxitekturasi), bitta RDRAND yoki RDSEED ko'rsatma operand o'lchamidan qat'i nazar (16/32/64 bit) 110ns yoki 463 soat tsikllarini oladi. Ushbu soat tsikllari soni barcha protsessorlarga tegishli Skylake yoki Kaby ko'li mikroarxitektura. Ustida Silvermont mikroarxitektura protsessorlari, ko'rsatmalarning har biri operand o'lchamidan qat'i nazar, 1472 soat tsiklini oladi; va boshqalar Ayvi ko'prigi protsessorlar RDRAND 117 soat tsiklini oladi.[19]

AMD Ryzen protsessorida har bir ko'rsatma 16 bitli yoki 32 bitli operand uchun 1200 soat, 64 bitli operand uchun 2500 soatlik tsiklni oladi.[19]

Monte-Karlo astrofizik simulyatori 10 hosil bo'lish vaqtini tekshirdi7 64-bitli tasodifiy raqamlar RDRAND to'rt yadroli Intel i7-3740 QM protsessorida. S ning amalga oshirilishini aniqladilar RDRAND sukut bo'yicha tasodifiy raqamlar ishlab chiqaruvchisidan taxminan 2 × sekin, va taqqoslaganda 20 × sekinroq ishladi Mersen Tvister. Python moduli bo'lsa ham RDRAND qurilgan, u Python-dagi odatiy tasodifiy raqamlar generatoridan 20 × sekinroq ekanligi aniqlandi.[20]

Tuzuvchilar

Visual C ++ 2015 uchun ichki qoplama yordami taqdim etiladi RDRAND va RDSEED funktsiyalari.[21] GCC 4.6+ va Jiringlash 3.2+ taqdim etadi ichki funktsiyalar uchun RDRAND qachon -mrdrnd ko'rsatilgan bayroqlar,[22] shuningdek ruxsat berish uchun __RDRND__ ni sozlang shartli kompilyatsiya. Yangi versiyalar qo'shimcha ravishda taqdim etiladi imintrin.h Intel C Compiler-ning 12.1+ versiyasiga mos keladigan funktsiyalarni ushbu ichki qismlarni o'rash uchun. Ushbu funktsiyalar o'z parametrlari bilan ko'rsatilgan joyga tasodifiy ma'lumotlarni yozadilar va 1 natijalarini qaytaradilar.[23]

Ilovalar

Kriptografik jihatdan xavfsiz tasodifiy raqamlarni yaratish variantidir RDRAND va RDSEED aloqa xavfsizligini ta'minlash uchun OpenSSL-da.

Birinchi[iqtibos kerak ][shubhali ] ning ilmiy qo'llanilishi RDRAND astrofizikada topish mumkin. Kam massali yulduzlarni radio kuzatuvlari va jigarrang mitti ularning bir nechtasi radio to'lqinlarining tarqalishini aniqladilar. Ushbu radio to'lqinlar sabab bo'ladi magnit qayta ulanish, xuddi shu jarayon Quyoshda quyosh nurlarini keltirib chiqaradi. RDRAND a uchun katta miqdordagi tasodifiy sonlarni yaratish uchun foydalanilgan Monte-Karlo simulyator, jigarrang mitti jismoniy xususiyatlarini va ularni kuzatadigan asboblar ta'sirini modellashtirish uchun. Ular jigarrang mitti taxminan 5% kuchli radio portlashlari uchun etarli darajada magnitlanganligini aniqladilar. Ular shuningdek, ning ishlashini baholadilar RDRAND boshqa tasodifiy generatorlar bilan taqqoslaganda C va Python-dagi ko'rsatmalar.[20]

Qabul qilish

2013 yil sentyabr oyida a Nyu-York Tayms maqola shifrlashni zaiflashtirish uchun NSA ning harakatlarini ochib berish,[24] Teodor Ts'o foydalanish to'g'risida ommaviy ravishda e'lon qilingan RDRAND uchun / dev / random ichida Linux yadrosi:[25]

Intel muhandislarining bosimiga yo'l qo'ymaslik uchun qarshilik qilganimdan juda xursandman / dev / random faqat ga ishonish RDRAND ko'rsatma. [New York Times maqolasidan iqtibos uchun[24]]: 'Bu yilga kelib Sigintni yoqish loyihasi ba'zi shifrlash chiplari ichida biznes va hukumatlar uchun ma'lumotni chigallashtirish usullarini topdi, yoki chip ishlab chiqaruvchilar bilan orqa eshiklarni kiritish uchun ... "Faqat chip ichida muhrlangan dasturni ishlatadigan apparat tasodifiy sonlar generatoriga tayanib auditorlik qilish - bu yomon fikr.

Linus Torvalds foydalanish bilan bog'liq tashvishlarni rad etdi RDRAND Linux yadrosida va u entropiyaning yagona manbai sifatida ishlatilmasligini ta'kidladi / dev / random, aksincha olingan qiymatlarni birlashtirib entropiyani yaxshilash uchun ishlatiladi RDRAND tasodifiylikning boshqa manbalari bilan.[26][27] Ammo, Defuse Security kompaniyasining Teylor Xornbi Linux tasodifiy sonlar ishlab chiqaruvchisi orqa eshik kiritilsa, xavfli bo'lib qolishi mumkinligini ko'rsatdi. RDRAND uni ishlatadigan kodni aniq ko'rsatadigan ko'rsatma. Xornbining kontseptsiyani tasdiqlash dasturi 3.13 versiyasiga qadar o'zgartirilmagan Linux yadrosi ustida ishlaydi.[28][29][30] Muammo Linux yadrosida 2013 yilda tuzatilgan.[31]

Ishlab chiquvchilar FreeBSD yadroni ishlatishdan uzoqlashtiring RDRAND va VIA PadLock to'g'ridan-to'g'ri sharh bilan "FreeBSD 10 uchun biz orqaga qaytamiz va olib tashlaymiz RDRAND va Padlock backends va ularni oziqlantirish Yarrow to'g'ridan-to'g'ri o'z mahsulotlarini etkazib berish o'rniga / dev / random. Hali ham apparat tasodifiy raqamlar generatorlariga kirish mumkin bo'ladi, ya'ni RDRAND, Agar kerak bo'lsa, to'g'ridan-to'g'ri inline montaj orqali yoki foydalanuvchi maydonidan OpenSSL-dan foydalanish orqali Padlock va hokazo. Lekin biz ularga ko'proq ishonib bo'lmaydi. "[26][32] FreeBSD / dev / tasodifiy foydalanish Fortuna va RDRAND FreeBSD 11-dan boshlangan.[33]

Shuningdek qarang

Izohlar

  1. ^ Ba'zi Ivy Bridge versiyalarida xato tufayli RDRAND ko'rsatmasi noqonuniy ko'rsatmalar istisnosiga sabab bo'ladi.[4]

Adabiyotlar

  1. ^ "Intel® Secure Key Technology nima?". Intel. Olingan 2020-09-23.
  2. ^ Xofemye, Gael (2011-06-22). "Intelning yangi RDRAND yo'riqnomasi to'g'risida bilib oling". Intel Developer Zone bloglari. Olingan 30 dekabr 2013.
  3. ^ a b v d "Intel Raqamli Tasodifiy Raqam Yaratuvchi (DRNG): Dasturiy ta'minotni amalga oshirish bo'yicha qo'llanma, Revision 1.1" (PDF). Intel korporatsiyasi. 2012-08-07. Olingan 2012-11-25.
  4. ^ Ish stoli 3-avlod Intel Core protsessor oilasi, spetsifikatsiyani yangilash (PDF). Intel korporatsiyasi. 2013 yil yanvar.
  5. ^ "AMD64 Arxitektura dasturchisining qo'llanmasi 3-jild: umumiy maqsad va tizim ko'rsatmalari". (PDF). AMD ishlab chiquvchilari uchun qo'llanmalar, qo'llanmalar va ISA hujjatlari. 2015 yil iyun. Olingan 16 oktyabr 2015.
  6. ^ Barker, Eleyn; Kelsi, Jon (2012 yil yanvar). "Deterministik tasodifiy bit generatorlari yordamida raqamlarni tasodifiy ishlab chiqarish bo'yicha tavsiyalar" (PDF). Milliy standartlar va texnologiyalar instituti. Olingan 16 sentyabr, 2013. Iqtibos jurnali talab qiladi | jurnal = (Yordam bering)
  7. ^ Gamburg, Mayk; Kocher, Pol; Marson, Mark (2012-03-12). "Intelning Ivy Bridge raqamli tasodifiy raqamlarni ishlab chiqaruvchisi tahlili" (PDF). Kriptografik tadqiqotlar, Inc. Arxivlandi asl nusxasi (PDF) 2014-12-30 kunlari. Olingan 2015-08-21.
  8. ^ Xofemye, Gael (2012-07-26). "Intel AES-NI va Intel SecureKey ko'rsatmalariga kirish".. Intel Developer Zone. Intel. Olingan 2015-10-24.
  9. ^ "AMD Linux-ni yoqishni keyingi avlod" Zen "arxitekturasida boshlaydi - Phoronix". www.phoronix.com. Olingan 2015-10-25.
  10. ^ "1-jild, 7.3.17-bo'lim," Tasodifiy raqamlarni yaratish bo'yicha ko'rsatma'" (PDF). Intel® 64 va IA-32 Architectures Software Developer tomonidan qo'llanmaning birlashtirilgan hajmi: 1, 2A, 2B, 2C, 3A, 3B va 3C. Intel korporatsiyasi. Iyun 2013. p. 177. Olingan 24 iyun 2013. RDRAND yo'riqnomasini qo'llab-quvvatlaydigan barcha Intel protsessorlari RDRAND yo'riqnomasining mavjudligini CPUID.01H hisoboti orqali bildiradi: ECX.RDRAND [bit 30] = 1
  11. ^ "AMD64 Arxitektura dasturchisining qo'llanmasi 3-jild: umumiy maqsad va tizim ko'rsatmalari". (PDF). AMD. Iyun 2015. p. 278. Olingan 15 oktyabr 2015. RDRAND yo'riqnomasini qo'llab-quvvatlash majburiy emas. Ko'rsatmani qo'llab-quvvatlaydigan protsessorlarda CPUID Fn0000_0001_ECX [RDRAND] = 1
  12. ^ "1-jild, 7.3.17-bo'lim," Tasodifiy raqamlarni yaratish bo'yicha ko'rsatma'" (PDF). Intel® 64 va IA-32 Architectures Software Developer tomonidan qo'llanmaning birlashtirilgan hajmi: 1, 2A, 2B, 2C, 3A, 3B va 3C. Intel korporatsiyasi. Iyun 2013. p. 177. Olingan 25 oktyabr 2015. RDSEED yo'riqnomasini qo'llab-quvvatlaydigan barcha Intel protsessorlari CPUID hisoboti orqali RDSEED yo'riqnomasi mavjudligini bildiradi. (EAX = 07H, ECX = 0H): EBX.RDSEED [bit 18] = 1
  13. ^ "Intel® raqamli tasodifiy raqamlarni ishlab chiqaruvchi (DRNG) dasturiy ta'minotni amalga oshirish bo'yicha qo'llanma | Intel® ishlab chiqaruvchi zonasi". Software.intel.com. Olingan 2014-01-30.
  14. ^ a b Teylor, Greg; Koks, Jorj (sentyabr 2011). "Intelning yangi tasodifiy raqamli generatori ortida". IEEE Spektri.
  15. ^ Jon Mexalas (2012 yil noyabr). "RDRAND va RDSEED o'rtasidagi farq". software.intel.com. Intel korporatsiyasi. Olingan 1 yanvar 2014.
  16. ^ Mechalas, Jon. "Intel Raqamli Tasodifiy Raqam Yaratuvchi (DRNG) Dasturni Amalga Yo'riqlash, 3.2.1 Bo'lim Entropiya Manbai (ES)". Intel dasturiy ta'minoti. Intel. Olingan 18 fevral 2015.
  17. ^ https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide deydi 800 megabayt, bu soniyasiga 6,4 gigabit
  18. ^ 64-bitlik eng sodda dastur Xorshift 3 ga ega XOR va 3 smenalar; agar ular 2 gigagertsli chastotada 4 yadroda mahkamlangan holda bajarilsa, ishlash quvvati 80 Gb / sek. Amalda bu yuklarni yuklash / saqlash va boshqalar sababli kamroq bo'ladi, ammo baribir 6,4 Gb / sek dan oshishi mumkin RDRAND. Boshqa tomondan, ning RDRANDraqamlari Xorshift kabi PRNG dasturidan yuqori bo'lishi kerak.
  19. ^ a b http://www.agner.org/optimize/instruction_tables.pdf
  20. ^ a b Marshrut, Metyu (2017 yil 10-avgust). "Radioelektrli ultrakool mitti mitti sintezi". Astrofizika jurnali. 845: 66. arXiv:1707.02212. doi:10.3847 / 1538-4357 / aa7ede.
  21. ^ "x86 ichki ro'yxati". docs.microsoft.com. 2020-02-28. Olingan 2020-05-07.
  22. ^ "X86 ichki funktsiyalari - GNU kompilyatori to'plamidan foydalanish (GCC)".
  23. ^ "Intel® C ++ Compiler 19.1 Tuzuvchi uchun qo'llanma va ma'lumotnoma". 2019-12-23.
  24. ^ a b Perlrot, Nikol; Larson, Jeff; Sheyn, Scott (2013 yil 5-sentyabr). "N.S.A. Internetda maxfiylikning asosiy kafolatlarini to'ldirishga qodir". The New York Times. Olingan 15-noyabr, 2017.
  25. ^ Ts'o, Teodor (2013 yil 6-sentabr). "Intel muhandislarining bosimiga / dev / tasodifiy ishonishga ruxsat berishiga qarshi turganimdan juda xursandman ..." Arxivlandi asl nusxasi 2018-06-11.
  26. ^ a b Richard Chirgvin (2013-12-09). "FreeBSD apparat tasodifiyligidan voz kechmoqda". Ro'yxatdan o'tish.
  27. ^ Gavin Klark (2013 yil 10-sentabr). "Torvalds Linux kripto-da Intel RDRAND-ni orqaga qaytarish uchun chaqiruvni o'qqa tutmoqda". usta.co.uk. Olingan 12 mart 2014.
  28. ^ Teylor Xornbi (2013 yil 6-dekabr). "RDRAND orqa eshik kontseptsiyasining isboti ishlamoqda! Stok yadrosi (3.8.13), faqat RDRAND ko'rsatmasi o'zgartirilgan". Olingan 9 aprel 2015.
  29. ^ Teylor Xornbi [@DefuseSec] (2013 yil 10 sentyabr). "Men nima uchun Linuxning RDRAND-dan foydalanish muammoli ekanligini tushuntirib, qisqa suhbat yozdim. Http://pastebin.com/A07q3nL3 / cc @kaepora @voodooKobra" (Tvit). Olingan 11 yanvar 2016 - orqali Twitter.
  30. ^ Daniel J. Bernshteyn; Tanja Lange (2014 yil 16-may). "Tasodifiylikni yaratish" (PDF). Olingan 9 aprel 2015.
  31. ^ Xornbi, Teylor (2017-05-09). "Siz RDRAND-ni yoqishni xohlaysizmi. Men hozirgina RDRAND yadrosining eski versiyasida chiqishni boshqarishi mumkinligini ko'rsatdim". @DefuseSec. Olingan 2019-10-30.
  32. ^ "FreeBSD choraklik holati to'g'risida hisobot". Freebsd.org. Olingan 2014-01-30.
  33. ^ "tasodifiy (4)". www.freebsd.org. Olingan 2020-09-25.

Tashqi havolalar