نوشته شده توسط : محمد

دانلود پروژه مقایسه چهار طرح ضرب کننده RNS

مقایسه چهار طرح ضرب کننده RNS

فهرست مطالب
۱- مقدمه ۱
۱-۱ سیستم عددی باقیمانده ۱
۱-۲ قضیه باقی مانده های چینی ۲
۱-۳ کاربردهای RNS ۳

۲- روشهای ضرب پیمانه ای  ۵
۲-۱ روش مونتگمری ۵
۲-۲ بررسی اجمالی روشهای موجود پیاده سازی ضرب در RNS ۶
۲-۳ نکاتی پیرامون چهار طرح مورد نظر ۷

۳- طرح اول ۸
 ۳-۱ مقدمه ۸
 ۳-۲ بررسی سوابق ۸
 ۳-۳ الگوریتم ۹
 ۳-۴ پیاده سازی سخت افزاری ۱۰
۳-۵ محاسبه پیچیدگی مساحت و تأخیر طرح اول ۱۳

۴- طرح دوم ۱۵
۴-۱ مقدمه ۱۵
۴-۲ بررسی سوابق  ۱۵
۴-۳ الگوریتم ۱۵
۴-۴ پیاده سازی سخت افزاری ۱۸
۴-۵ محاسبه پیچیدگی مساحت و تأخیر طرح دوم ۲۰

۵- طرح سوم ۲۱
۵-۱ تبدیل سیستم RNS (Residue Conversion) ۲۸
۵-۲ پیاده سازی سخت افزاری ۳۰
۵-۲-۱ پیاده سازی تبدیل RNS ۳۱
۵-۲-۲ پیاده سازی بخش اصلی الگوریتم (الگوریتم مونتگمری با RNS) ۳۴
۵-۳- محاسبه پیچیدگی مساحت و تأخیر طرح سوم  ۳۶
۵-۳-۱ عناصر وابسته به ROM ۳۶
۵-۳-۲ عناصر ریاضی ۳۶
۵-۳-۳ تأخیر و مساحت تبدیل کننده RNS استاندارد ۳۷
۵-۳-۴ محاسبه مساحت و تأخیر تبدیل کننده RNS سریع ۴۴
۵-۳-۵ مساحت و تأخیر طرح سوم ۵۰
۵-۴ نتایج پیاده سازی در طرح سوم  ۵۶

۶- طرح چهارم ۵۸
۶-۱ بیان مقاله در مورد سیستم RNS  ۵۹
۶-۲ بیان مقاله از ضرب پیمانه ای بدون تقسیم (روش مونتگمری) ۶۰
۶-۳ بررسی صحت الگوریتم ۶۲
۶-۴ روش تبدیل RNS ۶۶
۶-۵ پیاده سازی سخت افزاری ۶۷
۶-۵-۱ تبدیل RNS ناقص ۶۸
۶-۵-۲ پیاده سازی بخش اصلی طرح چهارم (الگوریتم مونتگمری) ۶۸
۶-۶ محاسبه پیچیدگی تأخیر و مساحت طرح چهارم ۷۰
۶-۶-۱ محاسبه تأخیر و مساحت تبدیل RNSناقص ۷۰
۶-۶-۲ محاسبه تأخیر و مساحت در طرح چهارم ۷۲
۶-۷ نتایج شبیه سازی در طرج چهارم ۸۰

۷- مقایسه  طرح ها وجمع بندی  ۸۱
۷-۱- مقایسه چهار طرح ۸۱
۷-۲- جمع بندی  ۹۸

۸- مراجع
ضمیمه : MOMA

فصل اول
مـقدمـه
۱- مقدمه
همانطور که می دانیم ضرب پیمانه ای در علم رمزنگاری نقش مهمی ایفا می کند. از جمله روشهای رمزنگاری که به ضرب کننده پیمانه ای سریع نیاز دارد، روش رمزنگاری RSA می باشد که در آن نیاز به توان رساندن اعداد بزرگ در پیمانه های بزرگ می باشد. معمولاً برای نمایش اعداد در این حالات از سیستم باقی مانده (RNS) استفاده می شود و ضرب (به عنوان هسته توان رسانی) در این سیستم به کار می رود.
در اینجا برای آشنایی بیشتر به توضیح سیستم عددی باقی مانده می پردازیم و به کاربردها و فواید آن اشاراتی خواهیم داشت.
۱-۱ سیستم عددی باقیمانده (Residue Number System (RNS))
در حدود ۱۵۰۰ سال پیش معمایی به صورت شعر توسط یک شاعر چینی به صورت زیر بیان شد. «آن چه عددی است که وقتی بر اعداد ۳،۵و۷ تقسیم می شود باقیمانده های ۲،۳و۲ بدست می آید؟» این معما یکی از قدیمی ترین نمونه های سیستم عددی باقی مانده است.
در 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. تعداد اعداد قابل نمایش در این مثال   می باشد. می توان هرمجموعه ۱۰۵ تایی از اعداد صحیح مثبت یا منفی متوالی را با این سیستم عددی باقیمانده نمایش داد.
اثبات این که هر عدد صحیح موجود در محدوده، نمایش منحصر به فردی در این سیستم دارد به کمک قضیه باقی‌مانده های چینی(Chinese Remainder Theorem (CRT)) امکان پذیر است. این قضیه به صورت زیر بیان می شود:
۱-۲ قضیه باقی مانده های چینی:
اعداد صحیح مثبت   را که نسبت به هم دو به دو اول هستند در نظر بگیرید و M را حاصلضرب   فرض کنید. همچنین اعداد   را فرض کنید. اثبات می شود که فقط و فقط یک عدد صحیح U وجود دارد که شرایط زیر دارد:
     ,          ,
که U برابر است با:
 اعمال ریاضی جمع، تفریق و ضرب به راحتی و به صورت زیر در این سیستم انجام می شود.

 



:: موضوعات مرتبط: پروژه ها , ,
:: برچسب‌ها: دانلود پروژه مقایسه چهار طرح ضرب کننده RNS ,
:: بازدید از این مطلب : 409
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ انتشار : سه شنبه 17 دی 1392 | نظرات ()
نوشته شده توسط : محمد

دانلود پروژه مقایسه چهار طرح ضرب کننده RNS

مقایسه چهار طرح ضرب کننده RNS

فهرست مطالب
۱- مقدمه ۱
۱-۱ سیستم عددی باقیمانده ۱
۱-۲ قضیه باقی مانده های چینی ۲
۱-۳ کاربردهای RNS ۳

۲- روشهای ضرب پیمانه ای  ۵
۲-۱ روش مونتگمری ۵
۲-۲ بررسی اجمالی روشهای موجود پیاده سازی ضرب در RNS ۶
۲-۳ نکاتی پیرامون چهار طرح مورد نظر ۷

۳- طرح اول ۸
 ۳-۱ مقدمه ۸
 ۳-۲ بررسی سوابق ۸
 ۳-۳ الگوریتم ۹
 ۳-۴ پیاده سازی سخت افزاری ۱۰
۳-۵ محاسبه پیچیدگی مساحت و تأخیر طرح اول ۱۳

۴- طرح دوم ۱۵
۴-۱ مقدمه ۱۵
۴-۲ بررسی سوابق  ۱۵
۴-۳ الگوریتم ۱۵
۴-۴ پیاده سازی سخت افزاری ۱۸
۴-۵ محاسبه پیچیدگی مساحت و تأخیر طرح دوم ۲۰

۵- طرح سوم ۲۱
۵-۱ تبدیل سیستم RNS (Residue Conversion) ۲۸
۵-۲ پیاده سازی سخت افزاری ۳۰
۵-۲-۱ پیاده سازی تبدیل RNS ۳۱
۵-۲-۲ پیاده سازی بخش اصلی الگوریتم (الگوریتم مونتگمری با RNS) ۳۴
۵-۳- محاسبه پیچیدگی مساحت و تأخیر طرح سوم  ۳۶
۵-۳-۱ عناصر وابسته به ROM ۳۶
۵-۳-۲ عناصر ریاضی ۳۶
۵-۳-۳ تأخیر و مساحت تبدیل کننده RNS استاندارد ۳۷
۵-۳-۴ محاسبه مساحت و تأخیر تبدیل کننده RNS سریع ۴۴
۵-۳-۵ مساحت و تأخیر طرح سوم ۵۰
۵-۴ نتایج پیاده سازی در طرح سوم  ۵۶

۶- طرح چهارم ۵۸
۶-۱ بیان مقاله در مورد سیستم RNS  ۵۹
۶-۲ بیان مقاله از ضرب پیمانه ای بدون تقسیم (روش مونتگمری) ۶۰
۶-۳ بررسی صحت الگوریتم ۶۲
۶-۴ روش تبدیل RNS ۶۶
۶-۵ پیاده سازی سخت افزاری ۶۷
۶-۵-۱ تبدیل RNS ناقص ۶۸
۶-۵-۲ پیاده سازی بخش اصلی طرح چهارم (الگوریتم مونتگمری) ۶۸
۶-۶ محاسبه پیچیدگی تأخیر و مساحت طرح چهارم ۷۰
۶-۶-۱ محاسبه تأخیر و مساحت تبدیل RNSناقص ۷۰
۶-۶-۲ محاسبه تأخیر و مساحت در طرح چهارم ۷۲
۶-۷ نتایج شبیه سازی در طرج چهارم ۸۰

۷- مقایسه  طرح ها وجمع بندی  ۸۱
۷-۱- مقایسه چهار طرح ۸۱
۷-۲- جمع بندی  ۹۸

۸- مراجع
ضمیمه : MOMA

فصل اول
مـقدمـه
۱- مقدمه
همانطور که می دانیم ضرب پیمانه ای در علم رمزنگاری نقش مهمی ایفا می کند. از جمله روشهای رمزنگاری که به ضرب کننده پیمانه ای سریع نیاز دارد، روش رمزنگاری RSA می باشد که در آن نیاز به توان رساندن اعداد بزرگ در پیمانه های بزرگ می باشد. معمولاً برای نمایش اعداد در این حالات از سیستم باقی مانده (RNS) استفاده می شود و ضرب (به عنوان هسته توان رسانی) در این سیستم به کار می رود.
در اینجا برای آشنایی بیشتر به توضیح سیستم عددی باقی مانده می پردازیم و به کاربردها و فواید آن اشاراتی خواهیم داشت.
۱-۱ سیستم عددی باقیمانده (Residue Number System (RNS))
در حدود ۱۵۰۰ سال پیش معمایی به صورت شعر توسط یک شاعر چینی به صورت زیر بیان شد. «آن چه عددی است که وقتی بر اعداد ۳،۵و۷ تقسیم می شود باقیمانده های ۲،۳و۲ بدست می آید؟» این معما یکی از قدیمی ترین نمونه های سیستم عددی باقی مانده است.
در 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. تعداد اعداد قابل نمایش در این مثال   می باشد. می توان هرمجموعه ۱۰۵ تایی از اعداد صحیح مثبت یا منفی متوالی را با این سیستم عددی باقیمانده نمایش داد.
اثبات این که هر عدد صحیح موجود در محدوده، نمایش منحصر به فردی در این سیستم دارد به کمک قضیه باقی‌مانده های چینی(Chinese Remainder Theorem (CRT)) امکان پذیر است. این قضیه به صورت زیر بیان می شود:
۱-۲ قضیه باقی مانده های چینی:
اعداد صحیح مثبت   را که نسبت به هم دو به دو اول هستند در نظر بگیرید و M را حاصلضرب   فرض کنید. همچنین اعداد   را فرض کنید. اثبات می شود که فقط و فقط یک عدد صحیح U وجود دارد که شرایط زیر دارد:
     ,          ,
که U برابر است با:
 اعمال ریاضی جمع، تفریق و ضرب به راحتی و به صورت زیر در این سیستم انجام می شود.
در فرمول بالا به جای علامت  می توان هر کدام از علائم +،-،* را قرار داد.
سه عمل ریاضی (+،-،*) در این سیستم عددی راحت‌تر از سیستم نمایش عادی اعداد انجام می شود، زیرا هنگام انجام این عمل در این سیستم رقم نقلی (carry) بین بخشها رد و بدل نمی شود. در واقع انجام عملیات مربوط به مانده های هر پیمانه تاثیری روی دیگر عمل ها ندارد. یعنی محاسبه “ ” می تواند بطور مستقل (و در واقع موازی) انجام شود و نتیجه آن تاثیری در بقیه “ ”ها ندارد. بدین ترتیب عملیات ریاضی سریعتر (بعلت موازی شدن) و راحت تر (بعلت عدم تاثیرگذاری محاسبات مربوط به هر مانده برهم) انجام می شود.
 ۱-۳- کاربردهای RNS
سیستم عددی باقی مانده در چند دهه اخیر مورد توجه قرار گرفته، زیرا می توان بعضی از اعمال ریاضی را تحت RNS به صورت چند مجموعه زیر عمل ریاضی تقسیم کرد. ولی به دلیل اینکه این اعمال فقط شامل ضرب، جمع و تفریق هستند از RNS در محاسبات “خاص منظوره” استفاده می شود. RNS در پیاده سازی سریع مسائلی که شامل تصحیح و تشخیص خطا در سیستم های Fault-tolerant و سیستم‌های پردازش سیگنال هستند کاربرد دارد. کاربردهایی از قبیل تبدیل فوریه سریع، فیلتر دیجیتال و پردازش تصویر از اعمال ریاضی سریع RNS استفاده می کند. RNS راه خود را در کاربردهایی مثل تبدیلات تئوری اعداد و تبدیل فوریه گسسته پیدا کرده است. همچنین مستقل بودن رقم های باقیمانده باعث می شود که رخ دادن خطا در یک رقم به رقم های بعدی منتقل نشوند که این مسأله، باعث ایجاد یک معماری Fault-tolerant خواهد شد. [۳۵],[۲۰]
سیستم عددی RNS در رمزنگاری و به خصوص در روش RSA کاربرد زیادی دارد[۳۵]. البته در RSA از ضرب پیمانه ای جهت عملیات توان رسانی استفاده می‌شود.
در این پروژه سعی می شود که چهار طرح از رویکردهای ضرب RNS را پیاده‌سازی و با هم مورد مقایسه قرار دهیم. این مقایسه براساس حجم و تاخیر طرح ها می‌باشد. در پیاده سازی سعی شده است که از پیشنهادات مقالات جهت عناصر بکار رفته استفاده شود (بخصوص در دو طرح اول) و در مواقعی که پیشنهاد خاصی انجام نشده (مثل طرح های سوم و چهارم) پیشنهاد مناسب از لحاظ خود من انجام شده است.
در ادامه ابتدا به اصول ضرب RNS و روشهای بکار رفته برای اینکار اشاره می‌کنیم. سپس هر یک از چهار طرح را به تفصیل مورد بررسی قرار می دهیم و در مورد هر طرح، الگوریتم و سخت افزار بیان خواهد شد و سپس تاخیر و مساحت آن را تعیین می کنیم. در نهایت جمع بندی و مقایسه چهار طرح را انجام می دهیم. در ضمایم نیز کدهای VHDL نوشته شده را خواهید یافت.
۲- روشهای ضرب پیمانه ای
این روشها را می توان به دو دسته کلی تقسیم کرد. در دسته اول ابتدا عمل ضرب به صورت کامل انجام می شود و سپس کاهش به پیمانه روی نتیجه آخر اعمال می شود. این روشها را Reduction After Multiplication (RAM) می نامند. در دسته دوم عمل کاهش به پیمانه در هر مرحله ضرب و با هر حاصلضرب جزئی انجام می شود که به این روشها Reduction During Multiplication (RDM) می گویند[۳۸]. از میان طرحهای مورد نظر ما دو طرح اول به دسته اول و دو طرح بعدی به دسته دوم تعلق دارند.


:: موضوعات مرتبط: پروژه ها , ,
:: برچسب‌ها: دانلود پروژه مقایسه چهار طرح ضرب کننده RNS ,
:: بازدید از این مطلب : 443
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ انتشار : دو شنبه 11 آذر 1392 | نظرات ()

صفحه قبل 1 2 3 4 5 ... 224 صفحه بعد