بخشی از مقاله
چکیده – در این مقاله یک تولیدکننده اعداد ت صادفی واقعی بر ا ساس ا سیلاتور با فرکانس متغیر رندم ارائه شده ا ست. در این کار برای افزایش آنتروپی، فرکانس ا سیلاتور به صورت رندم تغییر داده می شود. تولیدکننده اعداد ت صادفی ارائه شده در برابر تغییرات دمایی از -40 تا 120 درجه سل سیوس و تغییرات ولتاژ از 1,8 تا 0,8 ولت مقاوم ه ست. در این کار از مفهوم افزایش جیتر با گذر زمان ا ستفاده شده ا ست. جیتر بهعنوان یک پدیده تصادفی در نظر گرفتهشده است که با گذر زمان افزایش پیدا میکند. پدیدههای تصادفی نویز حرارتی و Flicker noise به کار گرفتهشده است تا اینکه جیتر بهصورت تصادفی تولید شود. این کار در پروسه .18 میکرومتر پیادهسازی شده است. نتایج شبیهسازی در Hspice ارائه شده است. تصاویر بیتهای خروجی در نرمافزار متلب نمایش دادهشده است.
-1 مقدمه
تولیدکننده اعداد ت صادفی واقعی قطعات امنیتی ب سیار مهم و اصلی برای کاربردهایی نظیر رمزنگاری، سیستمهای مخابراتی، شبیهسازی، IOT و موبایل میباشد .[1] روشهایی که امروزه برای طراحی اعداد ت صادفی به کار گرفته می شوند، به دو د سته روشهای قابلمحا سبه و قابل پیشبینی - شبه ت صادفی - و روش غیرقابلپیشبینی - تصادفی واقعی - تقسیم میشوند. روشهای قابلمحاسبه به دلیل اینکه بهراحتی توسط مهاجم خارجی قابل شنا سایی خواهند بود، برای کاربردهای رمزنگاری نظیر IOT منا سب نمیبا شند.
برای ر سیدن به امنیت واقعی باید از قطعات که شامل منبع فیزیکی غیرقابلپیشبینی میباشند، استفاده کرد. تولیدکنندههای اعداد تصادفی واقعی بهصورت on-chip طراحی میشوند و پدیده تصادفی را از مدارات فیزیکی استخراج میکنند و پدیدههای تصادفی مانند نویز حرارتی، flicker noise، random telegraph noiseرا به ولتاژ یا تأخیر سیگنالی تبدیل میکند .[2] تولیدکننده اعداد تصادفی واقعی به دو صورت دیجیتالی و آنالوگی پیادهسازی میشود. در روشهای آنالوگی به تقویتکنندهها با گین بالا نیاز داریم تا نویز را بهطور مستقیم تقویت کنند .[5-3]
این طراحی نیاز به تقویتکنندهها و مبدلهای برای کالیبرا سیون دارد تا بایاس ایجادشده در اعداد رندم از بین برود. همچنین استفاده از مدارت آنالوگی توان بالا و دشواری در طراحی را همراه دارد. برای کاربرد های مو با یل و IOT، م قاو مت در برابر تغییرات دمایی، ولتاژ، پروسه یک مسئله بحرانی است .[6] تولیدکننده اعداد تصادفی واقعی بهصورت دیجیتالی، طراحی و پیادهسازی آسان میباشد و حساسیت کمتر به تغییرات ولتاژ، دما، پروسه در مقایسه با مدارات آنالوگی دارد .[7]
از میان کارهای پیشین، تولیدکننده اعداد تصادفی واقعی بر اساس Meta-stability سرعت خروجی بالایی دارد .[9-8] این روش نیاز به کالیبراسیون برای از بین بردن بایاس دارد، همچنین نیاز به مداراتی دارد تا در مقابل تغییرات دما، ولتاژ، پرو سه مقاوم باشند .[11] [10] [8] روش مرسوم دیگر استفاده از رینگ اسیلاتور میباشد که از جیتر زمانی برای تولید اعداد تصادفی واقعی استفاده میشود .[13] [12] [8] [6] [1] به دلیل اینکه جیتر در رینگ اسیلاتور محدود میباشد، باعث می شود که آنتروپی در رینگ ا سیلاتور پایین با شد، همچنین به دلیل اینکه زمان غیرقابلچشمپوشی نیاز است تا بیتهای تصادفی تولید شوند، بنابراین سرعت بیتهای خروجی پایین می باشد.
علاوه بر آن ری نگ اسیلاتور در م قا بل حملات ول تاژ آسیبپذیر میباشد .[14] تولیدکننده اعداد تصادفی واقعی بر اساس self-time ring oscillator سرعت بیت بهتری دارند [15] ولی فضای زیادی را اشغال میکنند. روشهای مختلفی برای افزایش آنتروپی پی شنهاد شده ا ست که یکی از آنها نمونهبرداری از دو رینگ ا سیلاتور با سرعت خیلی نزدیک به هم میبا شد که روش نامیده میشود .[16] در تمامی ساختارهای [17] [16] [7] [6] [1] نیاز به مدارات Pre-tuning میبا شد تا در مقابل تغییرات پرو سه، دما، ولتاژ، مقاوم با شند. در مرجع [17] یک رینگ ا سیلاتور دیفران سیلی طراحی شده ا ست که دارای فیدبک بهصورت مقاومتی است و نیاز به مدارات tuning ندارد.
در این کار از نویز حرارتی مقاومتها برای افزایش جیتر ا ستفاده شده ا ست، اما اگر در این ساختار ولتاژ به صورت دائمی در مقدار پایین قرار بگیرد، ا سیلاتور نو سان نمیکند و فاز آن به 180 درجه نمیرسد و اعداد تولیدشده معتبر نخواهند بود. در این مقاله یک رینگ اسیلاتور دیفرانسیلی با جیتر بالا و فرکانس بالا طراحیشده است که فرکانس آن بهصورت رندم تغییر میکند. در بخش 2 سیستم تولیدکننده اعداد تصادفی تو ضیح داده شده ا ست. در بخش 3 نتایج شبیه سازی ارائه شده است. در بخش 4 یک نتیجهگیری کلی ارائهشده است. نتایج حاصل از نرمافزار Hspice استخراج شده است.
-2 تولیدکننده اعداد تصادفی واقعی پیشنهادشده
بلوک دیاگرام کلی تولیدکننده اعداد ت صادفی واقعی در شکل - 1 - نشان دادهشده است که شامل سه بلوک میباشد. بلوک اول منبع آنتروپی میباشد. در بلوک دوم از پدیده رندم بهرهبرداری میشود . در بلوک سوم عمل پست پردازش انجام میشود تا وابستگی دنباله بیتهای تولیدشده کاهش پیدا کند.
-1-2 طراحی رینگ اسیلاتور
رینگ اسیلاتور طراحیشده در شکل - 2 - ارائهشده است. سلولهای داخلی رینگ ا سیلاتور در شکل - 3 - ن شان داده شده ا ست. سلول رینگ ا سیلاتور پی شنهاد شده به صورت دیفران سیلی میباشد که یک فیدبک مقاومتی - RF - برای مقاوم بودن در مقابل تغییرات پروسه به کار گرفتهشده است تا نیاز برای مدار Pre-tuning نبا شد. مقاومت RF به صورت فیدبک منفی از خروجی به ورودی و صل شده ا ست. این مقاومت از بایاسهای ایجاد شده به دلیل عدم تطابق در ترانزیستورهای NMOS و PMOS در یک معکوس کننده، جلوگیری میکند. این مقاومت بهعنوان منبع نویز حرارتی نیز استفاده میشود. همچنین باعث تثبیت گین مدار میشود.
شکل سمت راست مدار سلول رینگ اسیلاتور، شکل سمت چپ شماتیک کلی سلول رینگ اسیلاتور
با توجه به مرجع [18]، افزایش زمان ترنزیت باعث افزایش مقدار جیتر میشود . این مسئله به این دلیل است که هرچقدر زمان ترنزیت افزایش پیدا کند، احتمال اینک پدیده تصادفی روی این زمان تأثیر بگذارد، بیشتر میشود. درنتیجه میتوان از مدارات Pseudo-Nmos استفاده کرد؛ که در این مدارات Pmos به زمین وصل میشود. اندازه این ترانزیستورها نسبت ترانزیستورهای Nmos کوچکتر در نظر گرفته میشود. به همین علت خازن بار خروجی این مدار پایین میباشد و این مدارات فرکانس کاری بالایی دارند؛ بنابراین استفاده از این سلول در رینگ اسیلاتور، فرکانس اسیلاتور را افزایش میدهد.
بلوک کلی تولید کننده اعداد تصادفی واقعی
در رینگ ا سیلاتور پی شنهاد شده در شکل - 2 - از مقاومتهای RS برای جمعآوری تعداد سیکلهای کافی برای نوسان کردن استفاده شده است. با افزایش RS تعداد سیکلها کم خواهد شد. رینگ اسیلاتور طراحیشده به کمک دو مالتی پلکسر تعداد طبقات آن تغییر میکند. یکی از اعداد تصادفی تولیدی به بیت کنترلی مالتی پلکسر وصل میشود. تعداد طبقات به کمک مالتی پلکسر و بیت کنترلی آن میتواند سهطبقه یا پنج طبقه باشد.
این تغییر طبقه فرکانس خروجی و تعداد سیکلهایی موردنیاز برای رسیدن به اختلاففاز 180 درجه را بهطور رندم تغییر میدهد. با تو جه به مرجع [18]، افزایش بیشاز حد ت عداد طب قات با عث کاهش در فرکانس ا سیلاتور درنتیجه کاهش سرعت خروجی می شود. به دلیل اینکه سلول داخلی رینگ اسیلاتور طراحیشده فرکانس بالا نسبت به سلولهای دیگر دارد، افزایش تعداد طبقات باعث کاهش چندانی در سرعت رینگ اسیلاتور نخواهد شد.
-2-2 استخراج بیتهای تصادفی
بلوک کلی برای استخراج بیتهای تصادفی در شکل - - 4 نشان دادهشده است. در این کار از دو روش برای استخراج بیت تصادفی استفادهشده است. در روش اول اسیلاتور نوسان میکند زمانی که اختلاففاز به 180 درجه میرسد، توسط تشخیصدهنده فاز 180 درجه که در مرجع [17] طراحی شده است، تشخیص داده میشود. در شکل - 5 - مدار تشخیص فازمعکوس نشان داده شده است. خروجی تشخیصدهنده فازمعکوس با کلاک خارجی ضرب می شود تا همزمان سازی انجام شود، در روش اول برای استخراج بیتها، آنتروپی پایین میبا شد، درنتیجه ت صادفی بودن بیتهای خروجی کم است و سرعت کلی سیستم را روش اول مشخص می کند.
برای افزایش آنتروپی بیتهای خروجی در روش اول، خروجی حاصل از ضرب کلاک با خروجی تشخیصدهنده فازمعکوس با خروجی حاصل از فلیپ فلاب - RX - ضرب میشود، خروجی این حاصلضرب به تولید کننده پالس یک اعمال می شود و خروجی تولیدکننده پالس، شمارنده و اسیلاتور را بازنشانی میکند؛ اسیلاتور دوباره شروع به نوسان میکند. شمارنده یک تا زمانی که بازنشانی نشده پالس های خروجی اسیلاتور - B+ - را میشمارد. نمودار زمانی برای نحوی کار این روش در شکل 6 بالا آورده شده ا ست. با توجه به شکل م شخص میبا شد که هرگاه اسیلاتور فاز 180 درجه - IPD=1 - و سیگنالRX و CLK یک میباشد، پالس بازنشانی - ST2 - برای ریست کردن شمارنده یک و اسیلاتور تولید میشود.
در روش دوم برای استخراج بیت تصادفی یکی از خروجی های اسیلاتور توسط خروجی دیگر مطابق شکل - 4 - نمونهبرداری میشود. برای افزایش آنتروپی خروجی فلیپ فلاپ با خروجی اسیلاتور که نمونهبرداری میشود، xor میشود، حاصل این خروجی با کلاک ضرب می شود و وارد تولیدکننده پالس دو می شود و حاصل آن شمارنده را بازنشانی میکند. تا زمانی که به شمارنده سیکل پالس بازن شانی اعمال ن شده ا ست،پالس های خروجی اسیلاتور - B+ - را شمارش میکند. برای درک بیشتر شکل 6 پایین نحوهی عملکرد روش دوم را نشان میدهد. در این روش هرگاه کلاک خروجی یک باشد و سیگنال RX از مقدار یک به صفر تغییر کند یک پالس بازنشانی - R3 - برای ریست کردن شمارنده دو تولید میشود.