هدف از این پروژه مقایسه چهارطرح ضرب كننده RNS می باشد بدین منظور با بهره گیری از پیاده سازی این چهار طرح با نرم افزار VHDL به مقایسه آنها میپردازیم RNS یك روش نمایش اعداد است كه در آن هر عدد به وسیله باقی ماندههای تقسیم آن بر مجموعه ای از اعداد دو به دو نسبت به هم اول نمایش داده می شود با كمك قضیه باقی مانده چینی، اثبات می شود كه در RNS نمایش
قیمت فایل فقط 5,900 تومان
مقایسه چهار طرح ضرب كننده RNS
هدف از این پروژه مقایسه چهارطرح ضرب كننده RNS می باشد. بدین منظور با بهره گیری از پیاده سازی این چهار طرح با نرم افزار VHDL به مقایسه آنها میپردازیم. RNS یك روش نمایش اعداد است كه در آن هر عدد به وسیله باقی ماندههای تقسیم آن بر مجموعه ای از اعداد دو به دو نسبت به هم اول نمایش داده
می شود. با كمك قضیه باقی مانده چینی، اثبات می شود كه در RNS نمایش هر عدد منحصر به فرد می باشد برای ضرب در RNS نیاز به ضرب پیمانه ای خواهد بود. روشهای ضرب پیمانه ای برحسب اینكه كاهش به پیمانه، در كدام مرحله ضرب انجام گیرد. به دو دسته «كاهش در حین ضرب (RDM)» و «كاهش بعد از ضرب (RAM)» تقسیم می شوند. دو طرح اول این پروژه با تكنیك RAM و دو طرح دوم با تكنیك RDM كار میكنند.
1- مقدمه.......................................................................................................... 1
1-1 سیستم عددی باقیمانده...................................................................... 1
1-2 قضیه باقی مانده های چینی............................................................... 2
1-3 كاربردهای RNS.............................................................. 3
2- روشهای ضرب پیمانه ای ......................................................................... 5
2-1 روش مونتگمری................................................................................ 5
2-2 بررسی اجمالی روشهای موجود پیاده سازی ضرب در RNS........ 6
2-3 نكاتی پیرامون چهار طرح مورد نظر................................................. 7
3- طرح اول..................................................................................................... 8
3-1 مقدمه................................................................................................. 8
3-2 بررسی سوابق................................................................................... 8
3-3 الگوریتم............................................................................................. 9
3-4 پیاده سازی سخت افزاری................................................................. 10
3-5 محاسبه پیچیدگی مساحت و تأخیر طرح اول..................................... 13
4- طرح دوم.................................................................................................... 15
4-1 مقدمه................................................................................................. 15
4-2 بررسی سوابق .................................................................................. 15
4-3 الگوریتم............................................................................................. 15
4-4 پیاده سازی سخت افزاری................................................................. 18
4-5 محاسبه پیچیدگی مساحت و تأخیر طرح دوم.................................... 20
5- طرح سوم................................................................................................... 21
5-1 تبدیل سیستم RNS (Residue Conversion)............................... 28
5-2 پیاده سازی سخت افزاری................................................................. 30
5-2-1 پیاده سازی تبدیل RNS.......................................................... 31
5-2-2 پیاده سازی بخش اصلی الگوریتم (الگوریتم مونتگمری با RNS) 34
5-3- محاسبه پیچیدگی مساحت و تأخیر طرح سوم ............................... 36
5-3-1 عناصر وابسته به ROM......................................................... 36
5-3-2 عناصر ریاضی......................................................................... 36
5-3-3 تأخیر و مساحت تبدیل كننده RNS استاندارد......................... 37
5-3-4 محاسبه مساحت و تأخیر تبدیل كننده RNS سریع................. 44
5-3-5 مساحت و تأخیر طرح سوم...................................................... 50
5-4 نتایج پیاده سازی در طرح سوم ....................................................... 56
6- طرح چهارم................................................................................................ 58
6-1 بیان مقاله در مورد سیستم RNS ......................................... 59
6-2 بیان مقاله از ضرب پیمانه ای بدون تقسیم (روش مونتگمری)......... 60
6-3 بررسی صحت الگوریتم..................................................................... 62
6-4 روش تبدیل RNS............................................................................. 66
6-5 پیاده سازی سخت افزاری................................................................. 67
6-5-1 تبدیل RNS ناقص.................................................................... 68
6-5-2 پیاده سازی بخش اصلی طرح چهارم (الگوریتم مونتگمری).... 68
6-6 محاسبه پیچیدگی تأخیر و مساحت طرح چهارم................................ 70
6-6-1 محاسبه تأخیر و مساحت تبدیل RNSناقص............................ 70
6-6-2 محاسبه تأخیر و مساحت در طرح چهارم................................ 72
6-7 نتایج شبیه سازی در طرج چهارم..................................................... 80
7- مقایسه طرح ها وجمع بندی ..................................................................... 81
7-1- مقایسه چهار طرح........................................................................... 81
7-2- جمع بندی ....................................................................................... 98
8- مراجع.........................................................................................................
9- ضمائم .......................................................................................................
الف – كدهای VHDL طرح اول...............................................................
ب – كدهای VHDL طرح دوم.................................................................
ج – كدهای VHDL طرح سوم.................................................................
د – كدهای VHDL طرح چهارم..............................................................
هـ – MOMA .........................................................................................
فصل اول
مـقدمـه
1- مقدمه
همانطور كه می دانیم ضرب پیمانه ای در علم رمزنگاری نقش مهمی ایفا می كند. از جمله روشهای رمزنگاری كه به ضرب كننده پیمانه ای سریع نیاز دارد، روش رمزنگاری RSA می باشد كه در آن نیاز به توان رساندن اعداد بزرگ در پیمانه های بزرگ می باشد. معمولاً برای نمایش اعداد در این حالات از سیستم باقی مانده (RNS) استفاده می شود و ضرب (به عنوان هسته توان رسانی) در این سیستم به كار می رود.
در اینجا برای آشنایی بیشتر به توضیح سیستم عددی باقی مانده می پردازیم و به كاربردها و فواید آن اشاراتی خواهیم داشت.
1-1 سیستم عددی باقیمانده (Residue Number System (RNS))
در حدود 1500 سال پیش معمایی به صورت شعر توسط یك شاعر چینی به صورت زیر بیان شد. «آن چه عددی است كه وقتی بر اعداد 3،5و7 تقسیم می شود باقیمانده های 2،3و2 بدست می آید؟» این معما یكی از قدیمی ترین نمونه های سیستم عددی باقی مانده است.
در RNS یك عدد توسط لیستی از باقیمانده هایش برn عدد صحیح مثبت m1 تا mn كه این اعداد دو به دو نسبت به هم اولند (یعنی بزرگترین مقسوم علیه مشترك دوبدوشان یك است) به نمایش در می آید. به اعداد m1 تا mn پیمانه (moduli)
می گویند. حاصلضرب این nعدد، تعداد اعدادی كه می توان با این پیمانه ها نشان داد را بیان می كند. هر باقیمانده xi را به صورت xi=Xmod mi نمایش می دهند. در مثال بالا عدد مربوطه به صورت X=(2/3/2)RNS(7/5/3) به نمایش در می آید كه X mod7=2 و X mod5=3 و X mod3=2. تعداد اعداد قابل نمایش در این مثال می باشد. می توان هرمجموعه 105 تایی از اعداد صحیح مثبت یا منفی متوالی را با این سیستم عددی باقیمانده نمایش داد.
اثبات این كه هر عدد صحیح موجود در محدوده، نمایش منحصر به فردی در این سیستم دارد به كمك قضیه باقیمانده های چینی(Chinese Remainder Theorem (CRT)) امكان پذیر است. این قضیه به صورت زیر بیان می شود:
1-2 قضیه باقی مانده های چینی:
اعداد صحیح مثبت را كه نسبت به هم دو به دو اول هستند در نظر بگیرید و M را حاصلضرب فرض كنید. همچنین اعداد را فرض كنید. اثبات می شود كه فقط و فقط یك عدد صحیح U وجود دارد كه شرایط زیر دارد:
, ,
كه U برابر است با:
اعمال ریاضی جمع، تفریق و ضرب به راحتی و به صورت زیر در این سیستم انجام می شود.
,
در فرمول بالا به جای علامت می توان هر كدام از علائم +،-،* را قرار داد.
سه عمل ریاضی (+،-،*) در این سیستم عددی راحتتر از سیستم نمایش عادی اعداد انجام می شود، زیرا هنگام انجام این عمل در این سیستم رقم نقلی (carry) بین بخشها رد و بدل نمی شود. در واقع انجام عملیات مربوط به مانده های هر پیمانه تاثیری روی دیگر عمل ها ندارد. یعنی محاسبه “” می تواند بطور مستقل (و در واقع موازی) انجام شود و نتیجه آن تاثیری در بقیه “”ها ندارد. بدین ترتیب عملیات ریاضی سریعتر (بعلت موازی شدن) و راحت تر (بعلت عدم تاثیرگذاری محاسبات مربوط به هر مانده برهم) انجام می شود.
1-3- كاربردهای RNS
سیستم عددی باقی مانده در چند دهه اخیر مورد توجه قرار گرفته، زیرا می توان بعضی از اعمال ریاضی را تحت RNS به صورت چند مجموعه زیر عمل ریاضی تقسیم كرد. ولی به دلیل اینكه این اعمال فقط شامل ضرب، جمع و تفریق هستند از RNS در محاسبات “خاص منظوره” استفاده می شود. RNS در پیاده سازی سریع مسائلی كه شامل تصحیح و تشخیص خطا در سیستم های Fault-tolerant و سیستمهای پردازش سیگنال هستند كاربرد دارد. كاربردهایی از قبیل تبدیل فوریه سریع، فیلتر دیجیتال و پردازش تصویر از اعمال ریاضی سریع RNS استفاده می كند. RNS راه خود را در كاربردهایی مثل تبدیلات تئوری اعداد و تبدیل فوریه گسسته پیدا كرده است. همچنین مستقل بودن رقم های باقیمانده باعث می شود كه رخ دادن خطا در یك رقم به رقم های بعدی منتقل نشوند كه این مسأله، باعث ایجاد یك معماری Fault-tolerant خواهد شد. [35],[20]
سیستم عددی RNS در رمزنگاری و به خصوص در روش RSA كاربرد زیادی دارد[35]. البته در RSA از ضرب پیمانه ای جهت عملیات توان رسانی استفاده میشود.
در این پروژه سعی می شود كه چهار طرح از رویكردهای ضرب RNS را پیادهسازی و با هم مورد مقایسه قرار دهیم. این مقایسه براساس حجم و تاخیر طرح ها میباشد. در پیاده سازی سعی شده است كه از پیشنهادات مقالات جهت عناصر بكار رفته استفاده شود (بخصوص در دو طرح اول) و در مواقعی كه پیشنهاد خاصی انجام نشده (مثل طرح های سوم و چهارم) پیشنهاد مناسب از لحاظ خود من انجام شده است.
در ادامه ابتدا به اصول ضرب RNS و روشهای بكار رفته برای اینكار اشاره میكنیم. سپس هر یك از چهار طرح را به تفصیل مورد بررسی قرار می دهیم و در مورد هر طرح، الگوریتم و سخت افزار بیان خواهد شد و سپس تاخیر و مساحت آن را تعیین می كنیم. در نهایت جمع بندی و مقایسه چهار طرح را انجام می دهیم. در ضمایم نیز كدهای VHDL نوشته شده را خواهید یافت.
2- روشهای ضرب پیمانه ای
این روشها را می توان به دو دسته كلی تقسیم كرد. در دسته اول ابتدا عمل ضرب به صورت كامل انجام می شود و سپس كاهش به پیمانه روی نتیجه آخر اعمال می شود. این روشها را Reduction After Multiplication (RAM) می نامند. در دسته دوم عمل كاهش به پیمانه در هر مرحله ضرب و با هر حاصلضرب جزئی انجام می شود كه به این روشها Reduction During Multiplication (RDM) می گویند[38]. از میان طرحهای مورد نظر ما دو طرح اول به دسته اول و دو طرح بعدی به دسته دوم تعلق دارند.
جهت دریافت فایل مقایسه چهار طرح ضرب كننده RNS لطفا آن را خریداری نمایید
قیمت فایل فقط 5,900 تومان
برچسب ها : مقایسه چهار طرح ضرب كننده RNS , چهار طرح ضرب كننده , دانلود مقایسه چهار طرح ضرب كننده RNS , RNS , کامپیوتر , برنامه نویسی , نرم افزار , سخت افزار , اینترنت , وب سایت , پیاده سازی سخت افزاری , , سیستم عددی باقیمانده , قضیه باقی مانده های چینی , الگوریتم مونتگمری , تبدیل RNS ناقص , روشهای ضرب پیمانه ای , , پروژه دانشجویی , دانلود پژوهش , دانلود تحقیق , پایان نامه , دان