RDRAND
આર. ડી. આર. એ. એન. ડી. ("રીડ રેન્ડમ" માટે; ઇન્ટેલ સિક્યોર કી ટેક્નોલોજી તરીકે ઓળખાય છે, કોડનેમ બુલ માઉન્ટેન) એ ઇન્ટેલ ઓન-ચિપ હાર્ડવેર રેન્ડમ નંબર જનરેટરમાંથી રેન્ડમ નંબરો પરત કરવા માટેની સૂચના છે જે ઓન-ચિપ એન્ટ્રોપી સ્રોત દ્વારા સીડેડ કરવામાં આવી છે. ઇન્ટેલે 2012ની આસપાસ આ સુવિધા રજૂ કરી હતી અને જૂન 2015માં એએમડીએ સૂચના માટે ટેકો ઉમેર્યો હતો. (આર. ડી. આર. એ. એન. ડી. આઇવી બ્રિજ પ્રોસેસર્સમાં ઉપલબ્ધ છે અને તે ઇન્ટેલ 64 અને આઇ. એ.-32 ઇન્સ્ટ્રક્શન સેટ આર્કિટેક્ચરનો ભાગ છે.) રેન્ડમ નંબર જનરેટર એનઆઈએસટી એસપી 800-90 એ, એફઆઇપીએસ 140-2 અને એએનએસઆઈ X9.82 જેવા સુરક્ષા અને ક્રિપ્ટોગ્રાફિક ધોરણોનું પાલન કરે છે. ઇન્ટેલે 2012માં રેન્ડમ નંબર જનરેટરની સમીક્ષા કરવા માટે ક્રિપ્ટોગ્રાફી રિસર્ચ ઇન્ક. ને પણ વિનંતી કરી હતી, જેના પરિણામે ઇન્ટેલના આઇવી બ્રિજ ડિજિટલ રેન્ડમ નંબર જનરેટરનું પેપર એનાલિસિસ થયું હતું. આર. ડી. એસ. ઈ. ડી. એ આર. ડી. આર. એ. એન. ડી. જેવું જ છે અને એન્ટ્રોપી-જનરેટિંગ હાર્ડવેરને નીચલા સ્તરની પહોંચ પૂરી પાડે છે. આર. ડી. એસ. ઈ. ડી. જનરેટર અને પ્રોસેસર સૂચના આર. ડી. સી. ઈ. ડી. ઇન્ટેલ બ્રોડવેલ સીપીયુ અને એએમડી ઝેન સીપીયુ સાથે ઉપલબ્ધ છે. ઝાંખી CPUID સૂચનાનો ઉપયોગ AMD અને ઇન્ટેલ CPU બંને પર કરી શકાય છે કે કેમ તે તપાસવા માટે કે RDRAND સૂચના આધારભૂત છે કે કેમ. જો એમ હોય તો, ઇસીએક્સ રજિસ્ટરનો બીટ 30 સીપીયુઆઇડી સ્ટાન્ડર્ડ ફંક્શન 01એચને કોલ કર્યા પછી સેટ કરવામાં આવે છે. એએમડી પ્રોસેસરોને સમાન પરીક્ષણનો ઉપયોગ કરીને સુવિધા માટે તપાસવામાં આવે છે. આર. ડી. એસ. ઈ. ડી. ની ઉપલબ્ધતા ઇન્ટેલ સીપીયુ પર સમાન રીતે ચકાસી શકાય છે. જો આર. ડી. એસ. ઈ. ઈ. ડી. આધારભૂત હોય, તો ઇ. બી. એક્સ. રજિસ્ટરનો બીટ 18 સી. પી. યુ. આઈ. ડી. પ્રમાણભૂત કાર્ય 07 એચ. ને કોલ કર્યા પછી સેટ કરવામાં આવે છે. આર. ડી. આર. એ. એન. ડી. માટેનો ઓપકોડ 0x0F 0xC7 છે, ત્યારબાદ મોડઆરએમ બાઈટ છે જે ગંતવ્ય રજિસ્ટરને સ્પષ્ટ કરે છે અને વૈકલ્પિક રીતે 64-બીટ મોડમાં આરઇએક્સ ઉપસર્ગ સાથે જોડાય છે. ઇન્ટેલ સિક્યોર કી એ RDRAND સૂચના અને અંતર્ગત રેન્ડમ નંબર જનરેટર (RNG) હાર્ડવેર અમલીકરણ બંને માટે ઇન્ટેલનું નામ છે, જેને વિકાસ દરમિયાન "બુલ માઉન્ટેન" કોડનેમ આપવામાં આવ્યું હતું. ઇન્ટેલ તેમના આર. એન. જી. ને "ડિજિટલ રેન્ડમ નંબર જનરેટર" અથવા ડી. આર. એન. જી. કહે છે. જનરેટર હાર્ડવેર એન્ટ્રોપી સ્રોત દ્વારા પેદા થયેલા 256-બીટ કાચા એન્ટ્રોપી નમૂનાઓની જોડી લે છે અને તેમને એડવાન્સ્ડ એન્ક્રિપ્શન સ્ટાન્ડર્ડ (એઇએસ) (સીબીસી-મેક મોડમાં) કંડિશનર પર લાગુ કરે છે જે તેમને એક જ 256-બીટ કન્ડિશન્ડ એન્ટ્રોપી નમૂનામાં ઘટાડે છે. એન. આઈ. એસ. ટી. એસ. પી. <આઇ. ડી. 1> એ. માં વ્યાખ્યાયિત સીટીઆર ડી. આર. બી. જી. તરીકે ઓળખાતા નિર્ધારક રેન્ડમ-બીટ જનરેટરને કન્ડીશનરના આઉટપુટ દ્વારા સીડેડ કરવામાં આવે છે, જે આર. ડી. આર. એ. એન. ડી. સૂચના દ્વારા વિનંતી કરતી એપ્લિકેશનોને ક્રિપ્ટોગ્રાફિકલી સુરક્ષિત રેન્ડમ નંબરો પ્રદાન કરે છે. બીજ મૂલ્યમાં ફેરફાર કરતા પહેલા હાર્ડવેર મહત્તમ 511 128-બીટ નમૂનાઓ બહાર પાડશે. આર. ડી. એસ. ઈ. ડી. કામગીરીનો ઉપયોગ કરીને એ. ઈ. એસ.-સી. બી. સી.-એમ. એ. સી. માંથી કન્ડિશન્ડ 256-બીટ નમૂનાઓની ઍક્સેસ પૂરી પાડે છે. બ્રોડવેલ સીપીયુમાં ઉપલબ્ધ અન્ય સ્યુડોરાન્ડમ નંબર જનરેટરને સીડિંગ કરવા માટે ઇન્ટેલ સિક્યોર કીમાં આરડીએસઈઈડી સૂચના ઉમેરવામાં આવી હતી. આર. ડી. એસ. ઈ. ડી. સૂચના માટેનો એન્ટ્રોપી સ્રોત સ્વ-સમયબદ્ધ સર્કિટ પર અસુમેળ રીતે ચાલે છે અને 3 ગીગાહર્ટ્ઝના દરે બિટ્સના અનિયમિત પ્રવાહનું ઉત્પાદન કરવા માટે સિલિકોનની અંદર થર્મલ અવાજનો ઉપયોગ કરે છે, જે આર. ડી. આર. એ. એન. ડી. માંથી મેળવી શકાય તેવા અસરકારક 6,4 ગીગાબિટ/સે કરતા ધીમો છે (બંને દર તમામ કોર અને થ્રેડો વચ્ચે વહેંચાયેલા છે). આર. ડી. એસ. ઈ. ડી. સૂચના મનસ્વી પહોળાઈના સોફ્ટવેર પી. આર. એન. જી. ને સીડિંગ કરવા માટે બનાવાયેલ છે, જ્યારે આર. ડી. આર. એ. એન. ડી. એ એવી એપ્લિકેશનો માટે બનાવાયેલ છે જેને માત્ર ઉચ્ચ ગુણવત્તાની રેન્ડમ સંખ્યાઓની જરૂર હોય છે. જો ક્રિપ્ટોગ્રાફિક સુરક્ષાની જરૂર નથી, તો Xorshift જેવા સોફ્ટવેર PRNG સામાન્ય રીતે ઝડપી હોય છે. ઇન્ટેલ કોર i 7-7700 K, 4500 MHz (45 × 100 MHz) પ્રોસેસર (કાબી લેક-S માઇક્રોઆર્કિટેક્ચર) પર પ્રદર્શન, એક RDRAND અથવા RDSEED સૂચના 110 એનએસ અથવા 463 ઘડિયાળ ચક્ર લે છે, ઓપરેન્ડ કદ (16/32/64 બિટ્સ) ને ધ્યાનમાં લીધા વગર. ઘડિયાળ ચક્રની આ સંખ્યા સ્કાયલેક અથવા કાબી લેક માઇક્રોઆર્કિટેક્ચર ધરાવતા તમામ પ્રોસેસરોને લાગુ પડે છે. સિલ્વરમોન્ટ માઇક્રોઆર્કિટેક્ચર પ્રોસેસર્સ પર, દરેક સૂચનાઓ લગભગ 1472 ઘડિયાળ ચક્ર લે છે, ઓપરેન્ડ કદને ધ્યાનમાં લીધા વગર; અને આઇવી બ્રિજ પ્રોસેસર્સ પર આર. ડી. આર. એ. એન. ડી. 117 ઘડિયાળ ચક્ર લે છે. એએમડી રાયઝન સીપીયુ પર, દરેક સૂચનાઓ 16-બીટ અથવા 32-બીટ ઓપરેન્ડ માટે લગભગ 1200 ઘડિયાળ ચક્ર અને 64-બીટ ઓપરેન્ડ માટે લગભગ 2500 ઘડિયાળ ચક્ર લે છે. એસ્ટ્રોફિઝિકલ મોન્ટે કાર્લો સિમ્યુલેટરે ક્વાડ-કોર ઇન્ટેલ i 7-3740 ક્યુએમ પ્રોસેસર પર આરડીઆરએએનડીનો ઉપયોગ કરીને 107 64-બીટ રેન્ડમ નંબરો પેદા કરવા માટે સમયની તપાસ કરી. તેમને જાણવા મળ્યું કે આર. ડી. આર. એ. એન. ડી. નું સી અમલીકરણ સી માં ડિફોલ્ટ રેન્ડમ નંબર જનરેટર કરતા લગભગ 2x ધીમું અને મર્સેન ટ્વિસ્ટર કરતા લગભગ 20x ધીમું હતું. જો કે આર. ડી. આર. એ. એન. ડી. નું પાયથોન મોડ્યુલ બનાવવામાં આવ્યું છે, તે પાયથોનમાં ડિફોલ્ટ રેન્ડમ નંબર જનરેટર કરતાં 20x ધીમું હોવાનું જણાયું હતું, જો કે પી. આર. એન. જી. અને સી. એસ. પી. આર. એન. જી. વચ્ચેના પ્રદર્શનની સરખામણી કરી શકાતી નથી. જૂન 2020માં ઇન્ટેલ દ્વારા બહાર પાડવામાં આવેલ માઇક્રોકોડ અપડેટ, જે ક્રોસટૉક નબળાઈને ઘટાડવા માટે રચાયેલ છે (નીચે સુરક્ષા મુદ્દાઓ વિભાગ જુઓ), વધારાના સુરક્ષા નિયંત્રણોને કારણે આર. ડી. આર. એ. એન. ડી. અને આર. ડી. એસ. ઈ. ડી. ની કામગીરી પર નકારાત્મક અસર કરે છે. લઘૂકરણ લાગુ કરનારા પ્રોસેસરો પર, દરેક અસરગ્રસ્ત સૂચનામાં વધારાની વિલંબ થાય છે અને કોરમાં આર. ડી. આર. એ. એન. ડી. અથવા આર. ડી. એસ. ઈ. ડી. નો એક સાથે અમલ અસરકારક રીતે શ્રેણીબદ્ધ થાય છે. ઇન્ટેલે આ સુરક્ષા તપાસોને હળવી કરવા માટે એક પદ્ધતિ રજૂ કરી, આમ મોટાભાગના દૃશ્યોમાં કામગીરીની અસર ઘટાડે છે, પરંતુ ઇન્ટેલ પ્રોસેસરો મૂળભૂત રીતે આ સુરક્ષા છૂટછાટ લાગુ કરતા નથી. કમ્પાઇલર્સ વિઝ્યુઅલ સી + + 2015 આર. ડી. આર. એ. એન. ડી. અને આર. ડી. એસ. ઈ. ડી. કાર્યો માટે આંતરિક આવરણ આધાર પૂરો પાડે છે. GCC 4.6 + અને ક્લાંગ 3.2 + જ્યારે-mrdrnd ફ્લેગમાં સ્પષ્ટ થયેલ હોય ત્યારે RDRAND માટે આંતરિક કાર્યો પૂરા પાડે છે, શરતી સંકલનને મંજૂરી આપવા માટે પણ સુયોજિત કરે છે. નવી આવૃત્તિઓ વધુમાં આ બિલ્ટ-ઇન્સને ઇન્ટેલના સી કમ્પાઇલરની આવૃત્તિ 12.1 + સાથે સુસંગત કાર્યોમાં લપેટી લેવા માટે immintrin.h પ્રદાન કરે છે. આ વિધેયો તેમના પરિમાણ દ્વારા નિર્દેશિત સ્થાન પર રેન્ડમ ડેટા લખે છે, અને સફળતા પર 1 પરત કરે છે. એપ્લિકેશન્સ સુરક્ષિત સંદેશાવ્યવહારમાં મદદ કરવા માટે ઓપનએસએસએલમાં આરડીઆરએએનડી અને આરડીએસઈઈડીનો ઉપયોગ કરીને ક્રિપ્ટોગ્રાફિકલી સુરક્ષિત રેન્ડમ નંબરો જનરેટ કરવાનો વિકલ્પ છે. મોન્ટે કાર્લો સિમ્યુલેટરમાં આર. ડી. આર. એ. એન. ડી. ના વૈજ્ઞાનિક ઉપયોગનું મૂલ્યાંકન કરવામાં આવ્યું હતું, જે અન્ય રેન્ડમ નંબર જનરેટરની તુલનામાં કામગીરી અને પ્રજનનક્ષમતા પર ધ્યાન કેન્દ્રિત કરે છે. તે એવા નિષ્કર્ષ તરફ દોરી ગયું કે મર્સેન ટ્વિસ્ટરની વિરુદ્ધ આર. ડી. આર. એ. એન. ડી. નો ઉપયોગ કરવાથી અલગ પરિણામો મળતા નથી, પરંતુ ખરાબ પ્રદર્શન અને પ્રજનનક્ષમતા મળે છે. સપ્ટેમ્બર 2013માં, એન્ક્રિપ્શનને નબળું પાડવાના NSAના પ્રયાસોને જાહેર કરતા ન્યૂયોર્ક ટાઈમ્સના એક લેખના જવાબમાં, થિયોડોર ત્સોએ લિનક્સ કર્નલમાં/ડેવ/રેન્ડમ માટે RDRANDના ઉપયોગ અંગે જાહેરમાં પોસ્ટ કર્યું હતુંઃ લિનસ ટોરવાલ્ડ્સે લિનક્સ કર્નલમાં RDRANDના ઉપયોગ વિશેની ચિંતાઓને નકારી કાઢી હતી અને ધ્યાન દોર્યું હતું કે તેનો ઉપયોગ/ડેવ/રેન્ડમ માટે એન્ટ્રોપીના એકમાત્ર સ્રોત તરીકે થતો નથી, પરંતુ RDRANDમાંથી પ્રાપ્ત મૂલ્યોને રેન્ડમના અન્ય સ્રોતો સાથે જોડીને એન્ટ્રોપીમાં સુધારો કરવા માટે થાય છે. જો કે, ડિફ્યુઝ સિક્યુરિટીના ટેલર હોર્નબીએ દર્શાવ્યું હતું કે લિનક્સ રેન્ડમ નંબર જનરેટર અસુરક્ષિત બની શકે છે જો આર. ડી. આર. એ. એન. ડી. સૂચનામાં પાછળનો દરવાજો દાખલ કરવામાં આવે જે ખાસ કરીને તેનો ઉપયોગ કરીને કોડને લક્ષ્ય બનાવે છે. હોર્નબીનું પ્રૂફ-ઓફ-કન્સેપ્ટ અમલીકરણ આવૃત્તિ 3.13 પહેલાંના બિનપરિવર્તિત લિનક્સ કર્નલ પર કામ કરે છે. 2013માં લિનક્સ કર્નલમાં આ સમસ્યાને હળવી કરવામાં આવી હતી. વિકાસકર્તાઓએ ફ્રીબીએસડી કર્નલને આરડીઆરએએનડી અને વીઆઇએ પેડલોકનો ઉપયોગ કરવાથી સીધા જ ટિપ્પણી સાથે બદલી નાખ્યું હતું કે "ફ્રીબીએસડી 10 માટે, અમે બેકટ્રેક કરવા જઈ રહ્યા છીએ અને આરડીઆરએએનડી અને પેડલોક બેકએન્ડને દૂર કરવા જઈ રહ્યા છીએ અને તેમના આઉટપુટને સીધા/દેવ/રેન્ડમ પર પહોંચાડવાને બદલે તેમને યારોમાં ફીડ કરવા જઈ રહ્યા છીએ. હાર્ડવેર રેન્ડમ નંબર જનરેટર, એટલે કે આર. ડી. આર. એ. એન. ડી., પેડલોક વગેરેને સીધા ઇનલાઇન એસેમ્બલી દ્વારા અથવા જો જરૂરી હોય તો યુઝરલેન્ડમાંથી ઓપન. એસ. એસ. એલ. નો ઉપયોગ કરીને ઍક્સેસ કરવું હજુ પણ શક્ય રહેશે, પરંતુ અમે તેમના પર વધુ વિશ્વાસ કરી શકતા નથી. ફ્રીબીએસડી/દેવ/રેન્ડમ ઉપયોગો ફોર્ચ્યુના અને આરડીઆરએનડી ફ્રીબીએસડી 11 થી શરૂ થયા. સુરક્ષા મુદ્દાઓ 9 જૂન 2020ના રોજ, વ્રિજે યુનિવર્સિટી એમ્સ્ટર્ડમના સંશોધકોએ ક્રોસટૉક (CVE-2020-0543) નામના સાઇડ-ચેનલ એટેકને પ્રકાશિત કર્યો જેણે સંખ્યાબંધ ઇન્ટેલ પ્રોસેસરો પર RDRANDને અસર કરી. તેઓએ શોધ્યું કે હાર્ડવેર ડિજિટલ રેન્ડમ નંબર જનરેટર (ડી. આર. એન. જી.) માંથી આઉટપુટ સ્ટેજીંગ બફરમાં સંગ્રહિત કરવામાં આવ્યા હતા જે તમામ કોરમાં વહેંચવામાં આવ્યા હતા. નબળાઈએ અસરગ્રસ્ત પ્રોસેસર પર ચાલતા દૂષિત કોડને તે જ પ્રોસેસરના બીજા કોર પર ચાલતી પીડિત એપ્લિકેશનના આરડીઆરએએનડી અને આરડીએસઈઈડી સૂચના પરિણામોને વાંચવા માટે મંજૂરી આપી હતી, જેમાં ઇન્ટેલ એસજીએક્સ એન્ક્લેવની અંદર ચાલતી એપ્લિકેશનો શામેલ છે. સંશોધકોએ પ્રૂફ-ઓફ-કન્સેપ્ટ એક્સપ્લોઇટ વિકસાવ્યું હતું જેણે માત્ર એક સિગ્નેચર ઓપરેશન પછી અલગ સીપીયુ કોર પર ચાલતા એસજીએક્સ એન્ક્લેવમાંથી સંપૂર્ણ ઇસીડીએસએ કી કાઢી હતી. નબળાઈ એવા દૃશ્યોને અસર કરે છે જ્યાં અવિશ્વસનીય કોડ સમાન પ્રોસેસર પર વિશ્વસનીય કોડની સાથે ચાલે છે, જેમ કે વહેંચાયેલ હોસ્ટિંગ વાતાવરણમાં. ઇન્ટેલ ક્રોસટૉક નબળાઈને સ્પેશિયલ રજિસ્ટર બફર ડેટા સેમ્પલિંગ (એસ. આર. બી. ડી. એસ.) તરીકે ઉલ્લેખ કરે છે. સંશોધનના જવાબમાં, ઇન્ટેલે સમસ્યાને હળવી કરવા માટે માઇક્રોકોડ સુધારાઓ બહાર પાડ્યા. અદ્યતન માઇક્રોકોડ એ સુનિશ્ચિત કરે છે કે જ્યાં સુધી સંવેદનશીલ કામગીરીઓ ખાસ કરીને આર. ડી. આર. એ. એન. ડી., આર. ડી. એસ. ઈ. ડી. અને ઇ. જી. ઇ. ટી. કે. ઈ. વાય. સૂચનાઓ પૂર્ણ ન થાય અને સ્ટેજીંગ બફર ઉપર લખવામાં ન આવે ત્યાં સુધી ઓફ-કોર એક્સેસમાં વિલંબ થાય છે. એસ. આર. બી. ડી. એસ. હુમલો અન્ય સૂચનાઓને પણ અસર કરે છે, જેમ કે જે એમએસઆર વાંચે છે, પરંતુ ઇન્ટેલે કામગીરીની ચિંતાઓ અને તે સૂચનાઓના પરિણામોની ગુપ્તતાની ઓછી જરૂરિયાતને કારણે તેમને વધારાની સુરક્ષા સુરક્ષા લાગુ કરી નથી. 2012 અને 2019 ની વચ્ચે રજૂ થયેલા ઇન્ટેલ પ્રોસેસરોની વિશાળ શ્રેણીને અસર થઈ હતી, જેમાં ડેસ્કટોપ, મોબાઇલ અને સર્વર પ્રોસેસર્સનો સમાવેશ થાય છે. અસરગ્રસ્ત સૂચનાઓનો ઉપયોગ કરતી વખતે, ખાસ કરીને જ્યારે બહુ-થ્રેડેડ એપ્લિકેશનો દ્વારા સમાંતર રીતે ચલાવવામાં આવે છે, ત્યારે સુરક્ષા તપાસ દ્વારા રજૂ કરવામાં આવેલી વિલંબતા અને કોરમાં અસરગ્રસ્ત સૂચનાઓના અસરકારક શ્રેણીકરણને કારણે ઘટાડાઓ પોતે નકારાત્મક કામગીરીની અસરોમાં પરિણમ્યા હતા. ઇન્ટેલે દરેક લોજિકલ પ્રોસેસર પર આઇએ32 _ એમસીયુ _ ઓપીટી _ સીટીઆરએલ એમએસઆર દ્વારા રૂપરેખાંકિત કરી શકાય તેવો ઓપ્ટ-આઉટ વિકલ્પ રજૂ કર્યો હતો, જે એસજીએક્સ એન્ક્લેવની બહાર ચલાવવામાં આવતી સૂચનાઓ માટે વધારાની સુરક્ષા તપાસને નિષ્ક્રિય કરીને કામગીરીમાં સુધારો કરે છે. AES સૂચના સમૂહ બુલરન (ડીક્રિપ્શન પ્રોગ્રામ) વુલ્ફએસએસએલ નોંધો સંદર્ભો બાહ્ય કડીઓ RdRand. NET ઓપન સોર્સ પ્રોજેક્ટ X86 માઇક્રોપ્રોસેસર્સ X86 સૂચનાઓ મશીન કોડ રેન્ડમ નંબર જનરેશન X86 આર્કિટેક્ચર જુઓ.