RDRAND
আর. ডি. আর. এ. এন. ডি ("র্যান্ডম রিড"-এর জন্য; ইন্টেল সিকিউর কী টেকনোলজি, কোডনাম বুল মাউন্টেন নামে পরিচিত) একটি ইন্টেল অন-চিপ হার্ডওয়্যার র্যান্ডম নম্বর জেনারেটর থেকে র্যান্ডম সংখ্যা ফেরত দেওয়ার জন্য একটি নির্দেশ যা একটি অন-চিপ এনট্রপি উৎস দ্বারা বপন করা হয়েছে। ইন্টেল 2012 সালের দিকে এই বৈশিষ্ট্যটি চালু করে এবং 2015 সালের জুন মাসে এএমডি নির্দেশের জন্য সমর্থন যোগ করে। (আর. ডি. আর. এ. এন. ডি আইভি ব্রিজ প্রসেসরে পাওয়া যায় এবং এটি ইন্টেল 64 এবং আই. এ-32 নির্দেশ সেট স্থাপত্যের অংশ।) র্যান্ডম নম্বর জেনারেটর নিরাপত্তা এবং এন. আই. এস. টি. এস. পি <আই. ডি. 3> এ, এফ. আই. পি. এস <আই. ডি. 2>, এবং এ. এন. এস. আই <আই. ডি. 1>-এর মতো ক্রিপ্টোগ্রাফিক মানগুলির সঙ্গে সঙ্গতিপূর্ণ। ইন্টেল 2012 সালে র্যান্ডম নম্বর জেনারেটর পর্যালোচনা করার জন্য ক্রিপ্টোগ্রাফি রিসার্চ ইনকর্পোরেটেডকেও অনুরোধ করেছিল, যার ফলে ইন্টেলের আইভি ব্রিজ ডিজিটাল র্যান্ডম নম্বর জেনারেটরের গবেষণাপত্র বিশ্লেষণ করা হয়েছিল। আর. ডি. এস. ই. ডি আর. ডি. আর. এ. এন. ডি-এর অনুরূপ এবং এনট্রপি-জেনারেটিং হার্ডওয়্যারে নিম্ন-স্তরের প্রবেশাধিকার প্রদান করে। আর. ডি. এস. ই. ই. ডি জেনারেটর এবং প্রসেসর নির্দেশনা আর. ডি. সি. ই. ডি ইন্টেল ব্রডওয়েল সিপিইউ এবং এএমডি জেন সিপিইউ-এর সঙ্গে পাওয়া যায়। আর. ডি. আর. এ. এন. ডি নির্দেশ সমর্থিত কিনা তা পরীক্ষা করার জন্য এএমডি এবং ইন্টেল উভয় সিপিইউ-তে সিপিইউআইডি নির্দেশ ব্যবহার করা যেতে পারে। যদি তা হয়, ইসিএক্স রেজিস্টারের বিট 30 সিপিইউআইডি স্ট্যান্ডার্ড ফাংশনকে 01এইচ কল করার পরে সেট করা হয়। এএমডি প্রসেসরগুলি একই পরীক্ষা ব্যবহার করে বৈশিষ্ট্যটির জন্য পরীক্ষা করা হয়। আর. ডি. এস. ই. ই. ডি-এর প্রাপ্যতা ইন্টেল সিপিইউ-তে একইভাবে পরীক্ষা করা যেতে পারে। আরডিএসইইডি সমর্থিত হলে, সিপিইউআইডি স্ট্যান্ডার্ড ফাংশন 07এইচ কল করার পরে ইবিএক্স রেজিস্টারের বিট 18 সেট করা হয়। আর. ডি. আর. এ. এন. ডি-এর অপকোড হল 0x0এফ 0xসি7, যার পরে একটি মোড. আর. এম বাইট থাকে যা গন্তব্য রেজিস্টার নির্দিষ্ট করে এবং 64-বিট মোডে বিকল্পভাবে একটি আর. ই. এক্স উপসর্গের সাথে মিলিত হয়। ইন্টেল সিকিউর কী হল আর. ডি. আর. এ. এন. ডি নির্দেশ এবং অন্তর্নিহিত র্যান্ডম নম্বর জেনারেটর (আর. এন. জি) হার্ডওয়্যার বাস্তবায়ন উভয়ের জন্য ইন্টেলের নাম, যা উন্নয়নের সময় "বুল মাউন্টেন" কোডনাম দেওয়া হয়েছিল। ইন্টেল তাদের আর. এন. জি-কে "ডিজিটাল র্যান্ডম নম্বর জেনারেটর" বা ডি. আর. এন. জি বলে। জেনারেটরটি হার্ডওয়্যার এনট্রপি উৎস দ্বারা উত্পন্ন 256-বিট কাঁচা এনট্রপি নমুনাগুলির জোড়া নেয় এবং সেগুলিকে একটি অ্যাডভান্সড এনক্রিপশন স্ট্যান্ডার্ড (এইএস) (সিবিসি-ম্যাক মোডে) কন্ডিশনারে প্রয়োগ করে যা তাদের একক 256-বিট কন্ডিশন্ড এনট্রপি নমুনায় কমিয়ে দেয়। এনআইএসটি এসপি 800-90 এ-তে সংজ্ঞায়িত সি. টি. আর. ডি. আর. বি. জি নামে একটি নির্ধারক র্যান্ডম-বিট জেনারেটর কন্ডিশনার থেকে আউটপুট দ্বারা সীডেড হয়, যা আর. ডি. আর. এ. এন. ডি নির্দেশের মাধ্যমে অনুরোধ করা অ্যাপ্লিকেশনগুলিকে ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত র্যান্ডম নম্বর সরবরাহ করে। বীজের মান পরিবর্তনের আগে যন্ত্রপাতিটি সর্বোচ্চ 511টি 128-বিট নমুনা ইস্যু করবে। আরডিএসইইডি অপারেশন ব্যবহার করে এইএস-সিবিসি-ম্যাক থেকে শর্তযুক্ত 256-বিট নমুনায় প্রবেশাধিকার প্রদান করে। ব্রডওয়েল সিপিইউতে উপলব্ধ আরেকটি সিউডোরান্ডম নম্বর জেনারেটর বসানোর জন্য ইন্টেল সিকিউর কী-তে আরডিএসইইডি নির্দেশ যুক্ত করা হয়েছিল। আর. ডি. এস. ই. ই. ডি নির্দেশের জন্য এনট্রপি উৎস একটি স্ব-সময়োপযোগী বর্তনীতে অতুলনীয়ভাবে চলে এবং 3 গিগাহার্টজ হারে বিটের একটি এলোমেলো প্রবাহ বের করার জন্য সিলিকনের মধ্যে তাপীয় শব্দ ব্যবহার করে, যা আর. ডি. আর. এ. এন. ডি থেকে প্রাপ্ত কার্যকর 6,4 গিগাবাইট/সেকেন্ডের চেয়ে ধীর (উভয় হারই সমস্ত কোর এবং থ্রেডের মধ্যে ভাগ করা হয়)। আর. ডি. এস. ই. ই. ডি নির্দেশটি নির্বিচারে প্রস্থের একটি পি. আর. এন. জি সফ্টওয়্যার সিডিংয়ের উদ্দেশ্যে করা হয়েছে, যেখানে আর. ডি. আর. এ. এন. ডি এমন অ্যাপ্লিকেশনগুলির জন্য তৈরি করা হয়েছে যার জন্য কেবল উচ্চ-মানের র্যান্ডম সংখ্যা প্রয়োজন। যদি ক্রিপ্টোগ্রাফিক সুরক্ষার প্রয়োজন না হয়, তবে জর্সশিফ্টের মতো একটি সফ্টওয়্যার পিআরএনজি সাধারণত দ্রুত হয়। একটি ইন্টেল কোর আই 7-7700 কে, 4500 মেগাহার্টজ (45 × 100 মেগাহার্টজ) প্রসেসরে (ক্যাবি লেক-এস মাইক্রোআরকিটেকচার), একটি একক আরডিআরএএনডি বা আরডিএসইইডি নির্দেশ 110 এনএস বা 463 ঘড়ি চক্র নেয়, অপারেন্ডের আকার (16/32/64 বিট) নির্বিশেষে। এই সংখ্যক ঘড়ি চক্র স্কাইলেক বা কাবি লেক মাইক্রোআরকিটেকচার সহ সমস্ত প্রসেসরের ক্ষেত্রে প্রযোজ্য। সিলভারমন্ট মাইক্রোআরকিটেকচার প্রসেসরগুলিতে, প্রতিটি নির্দেশ প্রায় 1472 ঘড়ি চক্র নেয়, অপারেন্ডের আকার নির্বিশেষে; এবং আইভি ব্রিজ প্রসেসরগুলিতে আরডিআরএএনডি 117 ঘড়ি চক্র পর্যন্ত নেয়। একটি এএমডি রাইজেন সিপিইউতে, প্রতিটি নির্দেশ 16-বিট বা 32-বিট অপারেন্ডের জন্য প্রায় 1200 ঘড়ি চক্র এবং 64-বিট অপারেন্ডের জন্য প্রায় 2500 ঘড়ি চক্র নেয়। একটি জ্যোতিঃপদার্থবিজ্ঞানী মন্টে কার্লো সিমুলেটর একটি কোয়াড-কোর ইন্টেল আই 7-3740 কিউএম প্রসেসরে আরডিআরএএনডি ব্যবহার করে 107টি 64-বিট র্যান্ডম সংখ্যা তৈরি করার সময় পরীক্ষা করে। তারা দেখেছেন যে আরডিআরএএনডি-র একটি সি বাস্তবায়ন সি-তে ডিফল্ট র্যান্ডম নম্বর জেনারেটরের তুলনায় প্রায় 2x ধীর এবং মার্সেন টুইস্টারের তুলনায় প্রায় 20x ধীর গতিতে চলে। যদিও আর. ডি. আর. এ. এন. ডি-এর একটি পাইথন মডিউল তৈরি করা হয়েছে, তবে এটি পাইথনের ডিফল্ট র্যান্ডম নম্বর জেনারেটরের তুলনায় 20x ধীর বলে মনে করা হয়েছিল, যদিও পিআর. এন. জি এবং সি. এস. পি. আর. এন. জি-এর মধ্যে পারফরম্যান্সের তুলনা করা যায় না। 2020 সালের জুন মাসে ইন্টেল দ্বারা প্রকাশিত একটি মাইক্রোকোড আপডেট, যা ক্রসটকের দুর্বলতা হ্রাস করার জন্য ডিজাইন করা হয়েছে (নীচের নিরাপত্তা সমস্যা বিভাগটি দেখুন), অতিরিক্ত নিরাপত্তা নিয়ন্ত্রণের কারণে আরডিআরএএনডি এবং আরডিএসইইডি-এর কার্যকারিতাকে নেতিবাচকভাবে প্রভাবিত করে। প্রশমন প্রয়োগ করা প্রসেসরগুলিতে, প্রতিটি প্রভাবিত নির্দেশে অতিরিক্ত বিলম্ব ঘটে এবং কোর জুড়ে আর. ডি. আর. এ. এন. ডি বা আর. ডি. এস. ই. ই. ডি-এর একযোগে সম্পাদন কার্যকরভাবে ক্রমিক করা হয়। ইন্টেল এই নিরাপত্তা চেকগুলি শিথিল করার জন্য একটি প্রক্রিয়া চালু করেছে, এইভাবে বেশিরভাগ পরিস্থিতিতে কর্মক্ষমতার প্রভাব হ্রাস করে, তবে ইন্টেল প্রসেসরগুলি ডিফল্টরূপে এই নিরাপত্তা শিথিলতা প্রয়োগ করে না। কম্পাইলার ভিজ্যুয়াল সি + + 2015 আর. ডি. আর. এ. এন. ডি এবং আর. ডি. এস. ই. ডি ফাংশনের জন্য অভ্যন্তরীণ মোড়ক সমর্থন প্রদান করে। জিসিসি 4.6 + এবং ক্ল্যাং 3.2 + আর. ডি. আর. এ. এন. ডি-এর জন্য অভ্যন্তরীণ ফাংশন প্রদান করে যখন-এম. আর. ডি. আর. এন. ডি ফ্ল্যাগগুলিতে নির্দিষ্ট করা হয়, এছাড়াও শর্তাধীন সংকলনের অনুমতি দেওয়ার জন্য সেটিং করা হয়। নতুন সংস্করণগুলি অতিরিক্তভাবে ইন্টেলের সি কম্পাইলারের সংস্করণ 12.1 + এর সাথে সামঞ্জস্যপূর্ণ ফাংশনগুলিতে এই অন্তর্নির্মিতগুলিকে মোড়ানোর জন্য immintrin.h প্রদান করে। এই ফাংশনগুলি তাদের প্যারামিটার দ্বারা নির্দেশিত অবস্থানে এলোমেলো তথ্য লেখে এবং সাফল্যের উপর 1 ফেরত দেয়। অ্যাপ্লিকেশনগুলি নিরাপদ যোগাযোগে সহায়তা করার জন্য ওপেনএসএসএল-এ আরডিআরএএনডি এবং আরডিএসইইডি ব্যবহার করে ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত র্যান্ডম নম্বর তৈরি করার একটি বিকল্প। মন্টে কার্লো সিমুলেটরে আর. ডি. আর. এ. এন. ডি-এর বৈজ্ঞানিক প্রয়োগ মূল্যায়ন করা হয়েছিল, অন্যান্য র্যান্ডম নম্বর জেনারেটরের তুলনায় কর্মক্ষমতা এবং পুনরুত্পাদনযোগ্যতার উপর দৃষ্টি নিবদ্ধ করে। এটি এই সিদ্ধান্তে পৌঁছেছিল যে মার্সেন টুইস্টারের বিপরীতে আরডিআরএএনডি ব্যবহার করা ভিন্ন ফলাফল প্রদান করে না, তবে আরও খারাপ কর্মক্ষমতা এবং পুনরুত্পাদনযোগ্যতা প্রদান করে। 2013 সালের সেপ্টেম্বরে, এনক্রিপশনকে দুর্বল করার জন্য এন. এস. এ-র প্রচেষ্টা প্রকাশ করে নিউইয়র্ক টাইমসের একটি নিবন্ধের প্রতিক্রিয়ায়, থিওডোর টি 'ও লিনাক্স কার্নেলে/ডেভ/র্যান্ডমের জন্য আর. ডি. আর. এ. এন. ডি-এর ব্যবহার সম্পর্কে প্রকাশ্যে পোস্ট করেছিলেনঃ লিনাস টরভাল্ডস লিনাক্স কার্নেলে আর. ডি. আর. এ. এন. ডি-এর ব্যবহার সম্পর্কে উদ্বেগকে খারিজ করে দিয়েছিলেন এবং উল্লেখ করেছিলেন যে এটি/ডেভ/র্যান্ডমের জন্য এনট্রপির একমাত্র উৎস হিসাবে ব্যবহৃত হয় না, বরং আর. ডি. আর. এ. এন. ডি থেকে প্রাপ্ত মানগুলিকে এলোমেলোভাবে অন্যান্য উৎসের সাথে একত্রিত করে এনট্রপির উন্নতি করতে ব্যবহৃত হয়। যাইহোক, ডিফিউজ সিকিওরিটির টেলর হর্নবি দেখিয়েছেন যে লিনাক্স র্যান্ডম নম্বর জেনারেটরটি অনিরাপদ হয়ে উঠতে পারে যদি আরডিআরএএনডি নির্দেশে একটি পিছনের দরজা চালু করা হয় যা বিশেষভাবে এটি ব্যবহার করে কোডটিকে লক্ষ্য করে। হর্নবির প্রুফ-অফ-কনসেপ্ট বাস্তবায়ন সংস্করণ 3.13-এর আগে একটি অপরিবর্তিত লিনাক্স কার্নেলে কাজ করে। 2013 সালে লিনাক্স কার্নেলে সমস্যাটি হ্রাস করা হয়। ডেভেলপাররা ফ্রিবিএসডি কার্নেলকে আরডিআরএএনডি এবং ভিআইএ প্যাডলক ব্যবহার করা থেকে সরাসরি এই মন্তব্যের সাথে পরিবর্তন করেছেন "ফ্রিবিএসডি 10-এর জন্য, আমরা ব্যাকট্র্যাক করতে এবং আরডিআরএএনডি এবং প্যাডলক ব্যাকএন্ডগুলি সরাতে এবং সরাসরি/ডেভ/র্যান্ডম-এ তাদের আউটপুট সরবরাহ করার পরিবর্তে ইয়ারোতে ফিড করতে চলেছি। হার্ডওয়্যার র্যান্ডম নম্বর জেনারেটর, অর্থাৎ আর. ডি. আর. এ. এন. ডি, প্যাডলক ইত্যাদি সরাসরি ইনলাইন অ্যাসেম্বলির মাধ্যমে বা প্রয়োজন হলে ইউজারল্যান্ড থেকে ওপেন. এস. এস. এল ব্যবহার করে অ্যাক্সেস করা সম্ভব হবে, তবে আমরা তাদের আর বিশ্বাস করতে পারি না। ফ্রিবিএসডি/ডেভ/র্যান্ডম ফরচুনা ব্যবহার করে এবং আরডিআরএএনডি ফ্রিবিএসডি 11 থেকে শুরু হয়। নিরাপত্তা সংক্রান্ত সমস্যা 2020 সালের 9ই জুন, ভ্রিজ ইউনিভার্সিটিট আমস্টারডামের গবেষকরা ক্রসটক (সিভিই-2020-0543) নামে একটি পার্শ্ব-চ্যানেল আক্রমণ প্রকাশ করেন যা বেশ কয়েকটি ইন্টেল প্রসেসরের আরডিআরএএনডি-কে প্রভাবিত করে। তারা আবিষ্কার করেন যে, হার্ডওয়্যার ডিজিটাল র্যান্ডম নম্বর জেনারেটর (ডি. আর. এন. জি) থেকে প্রাপ্ত ফলাফলগুলি একটি স্টেজিং বাফারের মধ্যে সংরক্ষণ করা হয় যা সমস্ত কোর জুড়ে ভাগ করা হয়। দুর্বলতা একটি প্রভাবিত প্রসেসরে চলমান দূষিত কোডকে ইন্টেল এসজিএক্স ছিটমহলের ভিতরে চলমান অ্যাপ্লিকেশন সহ একই প্রসেসরের অন্য কেন্দ্রে চলমান একটি ভুক্তভোগী অ্যাপ্লিকেশন থেকে আরডিআরএএনডি এবং আরডিএসইইডি নির্দেশের ফলাফল পড়ার অনুমতি দেয়। গবেষকরা একটি প্রুফ-অফ-কনসেপ্ট এক্সপ্লয়েট তৈরি করেছেন যা শুধুমাত্র একটি স্বাক্ষর অপারেশনের পরে একটি পৃথক সিপিইউ কোরের উপর চলমান একটি এসজিএক্স এনক্লেভ থেকে একটি সম্পূর্ণ ইসিডিএসএ কী বের করে। দুর্বলতা এমন পরিস্থিতিগুলিকে প্রভাবিত করে যেখানে অবিশ্বস্ত কোড একই প্রসেসরে বিশ্বস্ত কোডের পাশাপাশি চলে, যেমন একটি ভাগ করা হোস্টিং পরিবেশে। ইন্টেল ক্রসটকের দুর্বলতাকে স্পেশাল রেজিস্টার বাফার ডেটা স্যাম্পলিং (এসআরবিডিএস) হিসাবে উল্লেখ করে। গবেষণার প্রতিক্রিয়ায়, ইন্টেল সমস্যাটি প্রশমিত করতে মাইক্রোকোড আপডেট প্রকাশ করেছে। আপডেটেড মাইক্রোকোড নিশ্চিত করে যে সংবেদনশীল ক্রিয়াকলাপ বিশেষত আর. ডি. আর. এ. এন. ডি, আর. ডি. এস. ই. ডি এবং ই. জি. ই. টি. কে. ই নির্দেশাবলী সম্পূর্ণ না হওয়া পর্যন্ত এবং স্টেজিং বাফারটি ওভাররাইট না হওয়া পর্যন্ত অফ-কোর অ্যাক্সেসগুলি বিলম্বিত হয়। এসআরবিডিএস আক্রমণ অন্যান্য নির্দেশাবলীকেও প্রভাবিত করে, যেমন যারা এমএসআর পড়ে, কিন্তু ইন্টেল কর্মক্ষমতার উদ্বেগের কারণে এবং সেই নির্দেশাবলীর ফলাফলের গোপনীয়তার প্রয়োজনীয়তা হ্রাসের কারণে তাদের উপর অতিরিক্ত নিরাপত্তা সুরক্ষা প্রয়োগ করেনি। ডেস্কটপ, মোবাইল এবং সার্ভার প্রসেসর সহ 2012 থেকে 2019 সালের মধ্যে প্রকাশিত ইন্টেল প্রসেসরের একটি বিস্তৃত পরিসর প্রভাবিত হয়েছিল। সুরক্ষা পরীক্ষা দ্বারা প্রবর্তিত বিলম্বতা বৃদ্ধি এবং কোর জুড়ে প্রভাবিত নির্দেশাবলীর কার্যকর ক্রমিককরণের কারণে প্রভাবিত নির্দেশাবলী ব্যবহার করার সময় প্রশমনগুলি নিজেরাই নেতিবাচক কর্মক্ষমতার প্রভাব ফেলে, বিশেষত যখন বহু-থ্রেডেড অ্যাপ্লিকেশন দ্বারা সমান্তরালে কার্যকর করা হয়। ইন্টেল প্রতিটি লজিক্যাল প্রসেসরে আইএ32 _ এমসিইউ _ ওপিটি _ সিটিআরএল এমএসআর-এর মাধ্যমে কনফিগারযোগ্য একটি অপ্ট-আউট বিকল্প চালু করেছে, যা একটি এসজিএক্স ছিটমহলের বাইরে কার্যকর নির্দেশাবলীর জন্য অতিরিক্ত নিরাপত্তা চেকগুলি নিষ্ক্রিয় করে কর্মক্ষমতা উন্নত করে। আরও দেখুন এইএস নির্দেশ সেট বুলরান (ডিক্রিপশন প্রোগ্রাম) ওল্ফএসএসএল নোটস রেফারেন্স বাহ্যিক লিঙ্ক আরডিআর্যান্ড. নেট ওপেন সোর্স প্রজেক্ট এক্স86 মাইক্রোপ্রসেসর এক্স86 নির্দেশাবলী মেশিন কোড র্যান্ডম নম্বর জেনারেশন এক্স86 আর্কিটেকচার