خلاصه پایان نامه بررسی الگوریتم های بهینه رمزنگاری مقاوم بهمنظور پیاده سازی روی FPGA
پایاننامه برای دریافت درجه ی کارشناسی ارشد (M.Sc)
رشته مهندسی برق – گرایش الکترونیک
چکیده
توابع درهم ساز نوعی تابع چکیده ساز است که در تمامی طراحیهای رمزنگاری و پروتکلهای امنیتی جهت تولید اعداد تصادفی و مکانیزم ذخیره رمز عبور احراز هویت و امضای دیجیتالی در دنیای دیجیتال مورداستفاده قرار میگیرد.
موسسه ملی استاندارد و فناوری، مسابقهای را برای بهبود بخشیدن الگوریتم های چکیده ساز رایج، آغاز کرد الگوریتمهای چکیده ساز ارسالی به این مسابقه که SHA-3 نامگذاری شد، شامل 5 الگوریتم مقاوم که توانست به دور پایانی مسابقات راه یابد از طرفی الگوریتم JH در دور پایانی بهعنوان الگوریتم دوم مسابقات معرفی شود لذا هدف این پایاننامه بررسی الگوریتم چکیده ساز JH بهمنظور پیادهسازی روی FPGA بوده است در این الگوریتم، مشاهدات بهدستآمده شامل منابع واهی نیستند. این شبیهسازیها نشان میدهند که عملکرد الگوریتم چکیده ساز JH به چه میزان توانسته است روی FPGA شبیهسازی و سنتز شود.
کلیدواژهها: رمزنگاری، تابع چکیده ساز، Cryptographic،Algorithm Hash Function .
فصل 1-مروری بر مفاهیم اولیه رمزنگاری
1-1-مقدمه
امروزه امنیت از اهمیت بالای برخوردار بوده و در محیط اقتصادی و تجاری گسترده استفاده میشود. انواع راهکارهای ارائهشده تاکنون از نوع امنیت داده مداری است. دلایل متعددی برای حفاظت داده در هر مکان و زمان وجود دارد، ولی در جهان واقعی سروکار داشتن با مورد چندگانه دزدی اطلاعات و امکان گذراندن آزمایشها و ممیزیهای موردنیاز، همواره دغدغه امنیت و رمز اطلاعات بوده است [1].
1-2- لزوم امنیت شبکه
استفاده از شبکههای کامپیوتری و اینترنت، خطرات امنیتی متعددی را به همراه دارد. به همین دلیل انواع رمزها برای داده استفاده میشود تا امنیت داده در برقراری ارتباطات تضمین گردد [1].
1-3- انواع حملات
1-3-1-تغییر اطلاعات
در این نوع حمله فعال، اطلاعات در حین انتقال به مقصد موردحمله قرار میگیرد و جامعیت دادهها از دست میرود. حملهکننده با دریافت اطلاعات، آنها را تغییر میدهد و یا آنها را با اطلاعات دیگر جایگزین میکند. مقصد نیز این مسئله را تشخیص نداده و دادهها را استفاده مینماید. برای جلوگیری از این نوع حمله از توابع چکیده ساز[1] استفاده میشود [1].
1-3-2-جعل هویت
در این نوع حمله فعال، حملهکننده خود را بهعنوان یک کاربر مجاز به سامانههای محلی معرفی میکند و بدین ترتیب از سرویسهای مختلف شبکه محلی استفاده میکند. برای جلوگیری از این نوع حملات و فراهم کردن احراز هویت کاربران و نرمافزارها از امضاء دیجیتال استفاده میشود. در این روش، حملهکنندگان از ارائه سرویسهای یک موسسه جلوگیری مینمایند. راهاندازی این نوع حملات راحت است و اغلب از روشهای جعل هویت و نیز ارسال مقادیر زیادی از سامانههای پروتکل اینترنت[2] انجام میگیرد. این حملات بهاختصار DOS [3] نامیده میشود؛ و جزء حملات فعال هستند. با استفاده از دیواره آتش میتوان این حملات را کاهش داد [1].
1-3-3-استراق سمع
در این حمله نوع حمله غیرفعال[4]، اطلاعات تغییر نمییابند ولی محرمانگی آنها از دست میرود. اگر بخواهید اطلاعات را به متن عادی و رمز نشده به سامانههای راه دور ارسال کنید آنگاه ممکن است این اطلاعات توسط افراد غیرمجاز دریافت شوند. دستبرد اطلاعات ممکن است در مکانهای مختلفی همانند شبکههای محلی، سوئیچهای انتقال دادهها و یا شبکه اینترنت انجام شود. هماکنون نرمافزارهای مختلفی برای دریافت اطلاعات مختلف از روی شبکه محلی وجود دارد و ویروسها و حملهکنندگان نیز میتوانند اطلاعات انتقالیافته بر روی یک شبکه عمومی را دریافت کنند. برای جلوگیری از این مشکل امنیتی از فنهای رمزنگاری متقارن و نامتقارن دادهها استفاده میشود [1].
1-4- رمزنگاری دادهها
رمزنگاری فرآیندی است که در طی آن، دادهها از فرم عادی خود خارج و به صورتی تبدیل میشوند که بدون داشتن اطلاعات لازم (کلید گشایی) خواندن آنها تقریباً غیرممکن است؛ بنابراین در این روش با رمز نمودن دادهها از دسترسی افراد غیرمجاز به دادهها جلوگیری شده و محرمانگی داده به دست میآید. در این روش ابتدا در مبدأ عمل رمزنگاری انجامشده و سپس رمز شده دادهها به مقصد ارسال میگردند. حملهکنندهای که استراق سمع میکند و بستههای دادهها را در حین انتقال از شبکه دریافت میکند، رمز شده دادهها را به دست میآورد که برای او قابلاستفاده نیست. دریافتکننده دادهها در مقصد هم داده رمز شده را دریافت مینماید ولی او به دلیل اینکه، اطلاعات رمزگشایی دادهها را دارد میتواند دادهها را رمزگشایی نموده و استفاده کند. برای رمزنگاری دادهها دو روش متقارن و نامتقارن وجود دارد. ایده رمزنگاری متقارن از سالهای پیش وجود داشته است و مسئله جدیدی نیست ولی رمزنگاری نامتقارن از اصول ریاضی و الگوریتمهای پیچیدهای استفاده میکند و روش جدیدی در رمزنگاری دادهها به شمار میآید [1].
1-5- رمزنگاری متقارن دادهها
در این روش رمزنگاری، ترکیبی از جابجایی و جایگزینی دادهها در مراحل متعدد انجام میشوند تا پیچیدگی لازم برای دادهها به وجود آید. همچنین برای انجام عملیات رمزنگاری از یک کلید مشترک و محرمانه بین فرستنده و گیرنده انجام میشود. در این روش داده در مبدأ با کلید مشترک، رمز شده و به مقصد ارسال میگردند و در مقصد نیز دادهها با کلید مشترک رمزگشایی میشوند. در رمزنگاری متقارن فرض بر این است که حملهکننده از الگوریتم رمزنگاری مطلع است و تنها بر محرمانگی کلید رمزنگاری مشترک تکیه میشود. بهطورکلی هر چه طول کلید بیشتر باشد مدتزمان بیشتری برای شکستن دادهها صرف میگردد و امنیت بیشتری به دست میآید. با توجه به قدرت پردازش فعلی، انتخاب کلیدهای بیشتر از128 بیت مناسب به نظر میرسد. همچنین کلیدهای رمزنگاری مدتی پس از استفاده باید تعویض شوند و کلیدهای جدید حتیالامکان باید بهصورت تصادفی انتخاب گردند تا حداکثر امنیت به دست آید. الگوریتمهای رمزنگاری متقارن به 2 دسته الگوریتمهای بلاکی[5] و جریانی و دادهها بیت به بیت رمزنگاری و یا رمزگشایی میشوند. الگوریتمهای جریانی سریعتر از بلاکی هستند. الگوریتمهای همانند [6] DES، بلاکی و الگوریتمهایی همانند RCCL ، جریانی است البته لازم به ذکر است که رمزنگاری متقارن، احراز هویت را نیز فراهم میآورد. درصورتیکه داده رمز شدهای دریافت شد با توجه به کلید مورداستفاده میتوان از هویت شخص ارسالکننده داده نیز مطمئن شد زیرا این کلیدها محرمانه فرض میشوند. رمزنگاری متقارن از کارایی مطلوبی برخوردار است و تأخیر کمی را در عملیات رمزنگاری و رمزگشایی دادهها فراهم میآورد؛ بنابراین از آن میتوان برای رمزنگاری حجم بزرگی از دادهها استفاده نمود. از این نوع رمزنگاری در پروتکلهای امنیتی محیط باسیم و بیسیم بهطور گسترده استفاده میشود. الگوریتم 3DES، DES، IDEA [7]، RC4 [8]و غیره از الگوریتمهای متقارن میباشند [1].
1-6- رمزنگاری نامتقارن دادهها
رمزنگاری نامتقارن یا رمزنگاری کلید عمومی، بزرگترین و شاید تنهاترین انقلاب موجود در تاریخ رمزنگاری است. در این الگوریتم بهجای جایگشت و جایگزینی دادهها، توابع ریاضی استفاده میشود و بهجای یک کلید محرمانه مشترک، یک کلید عمومی و یک کلید خصوصی ایجاد و کلید عمومی در اختیار همه و کلید خصوصی تنها در دسترس کاربر قرار میگیرد. برای محرمانگی کلید خصوصی، رمز عبوری برای دسترسی پایگاه داده کلید خصوصی در نظر گرفته میشود. مفهوم رمزنگاری کلید عمومی، در پی تلاش برای حل دو مشکل توزیع کلید به روش امن و امضاء دیجیتال به وجود آمده و دارای دو خصوصیات مهم و اساسی زیر میباشند. 1- بهطور محاسباتی محاسبه کلید رمزگشایی از کلید رمزنگاری غیرممکن است. 2- هر دو کلید عمومی و خصوصی را میتوان برای رمزنگاری استفاده نمود. البته برای رمزگشایی باید کلید دیگر استفاده نمود. در این روش رمزنگاری، ابتدا کلید عمومی مقصد به روشی معتبری فراهمشده و سپس دادهها توسط کلید عمومی مقصد، رمزنگاری و به آن ارسال میگردند. حملهکننده بین مسیر مبدأ و مقصد میتواند کلید عمومی مقصد را بهراحتی به دست آورد ولی با این کلید، قادر به رمزگشایی دادهها نخواهد بود. در مقصد، دادهها توسط کلید خصوصی، رمزگشایی و استفاده میشوند. البته عکس این روش محرمانگی دادهها را به وجود نمیآورد زیرا درصورتیکه دادهها ابتدا توسط کلید خصوصی رمزنگاری شوند و سپس منتقل گردند چون همه افراد کلید عمومی را میدانند؛ بنابراین همه میتوانند دادههای رمز شده را رمزگشایی نمایند و محرمانگی دادهها از دست میرود. برای به دست آوردن کلید عمومی به روشی معتبر میتوان از گواهی دیجیتال استفاده نمود. در مقایسه با رمزنگاری متقارن این روش از محاسبات پیچیده و زمانگیری استفاده مینماید و لذا برای رمزنگاری حجم زیادی از داده بکار نمیرود. اغلب از این نوع رمزنگاری، برای ارسال مقادیر کمی از دادهها کلیدهای رمزنگاری متقارن استفاده میشود. متداولترین الگوریتم برای رمزنگاری، کلید عمومی الگوریتم RSA[9] است [1].
Abstract
The hash function is a variant of summry functions that are used in various filed of cryptography and security porotocols. Hash functions are related to generating of random numbers, saving mechanism of paswords, identification and authentication, and digital signature in digital world.
National Institute of Standards and Technology (NIST) announced in November 2007 that it would organize the SHA-3 competition, with as goal to select a new hash function family by 2012. From the 64 candidates submitted by October 2008, 5 have made it to the final round that the Keccak and JH algorthms were first and second, respectively. Therefore, in this thesis, we discuss the evaluation and implementation of JH function on FPGA. In this algorithm, achieved observations are not included spurious sources. These simulations show that how much of the algorithm operation can be simulated and synthesized on FPGA platform.
Keywords: Cryptography, Hash function, FPGA
فهرست پایان نامه بررسی الگوریتم های بهینه رمزنگاری مقاوم بهمنظور پیاده سازی روی FPGA
فهرست:
فهرست ح
فهرست شکل ها ل
فهرست جدولها س
چکیده 1
فصل 1- مروری بر مفاهیم اولیه رمزنگاری. 3
1-1- مقدمه 3
1-2- لزوم امنیت شبکه. 3
1-3- انواع حملات... 3
1-3-1- تغییر اطلاعات... 3
1-3-2- جعل هویت 4
1-3-3- استراق سمع 4
1-4- رمزنگاری دادهها 4
1-5- رمزنگاری متقارن دادهها 5
1-6- رمزنگاری نامتقارن دادهها 6
1-7- امضاء دیجیتال. 7
1-8- تابع چکیده ساز. 7
1-9- خصوصیات کلی توابع چکیده ساز. 7
1-10- دستهبندی توابع چکیده ساز. 8
1-11- ویژگیهای توابع چکیده ساز. 8
1-12- دستهبندی توابع چکیده ساز ازنظر کاربرد: 8
1-13- خواص توابع چکیده ساز یکطرفه. 10
1-14- توابع چکیده ساز مهم. 11
1-15- امنیت هَش یا تابع چکیده ساز. 12
فصل 2- معرفی الگوریتم پایانی رقابت.. 15
مقدمه 15
2-1- تاریخچه. 15
2-2- وضعیت دور دوم رقابت SHA-3. 16
2-3- بررسی و ارزیابی الگوریتمهای چکیده ساز دور نیمهنهایی رقابت SHA-3. 17
2-4- بررسی الگوریتم چکیده ساز BLAKE. 17
2-4-1- ویژگیهای BLAKE.. 18
2-4-2- ساختار تابع چکیده ساز BLAKE.. 18
2-4-3- نتیجه: 19
2-5- بررسی الگوریتم چکیده ساز Skein. 19
2-5-1- ویژگیهای Skein. 20
2-5-2- ساختار تابع چکیده ساز. 21
2-5-3- نتیجه. 21
2-6- بررسی چکیده ساز Keccak. 21
2-6-1- ویژگیهای Keccak. 22
2-6-2- ساختار تابع چکیده ساز. 23
2-6-3- نتیجه. 25
2-7- بررسی الگوریتم چکیده ساز Grostl 25
2-7-1- ساختار تابع چکیده ساز. 25
2-7-2- ساختار تابع فشردهساز Grostl 25
2-7-3- نتیجه. 28
2-8- بررسی الگوریتم چکیده ساز JH.. 28
2-8-1- معرفی الگوریتم JH.. 28
2-8-2- ساختار تابع فشردهساز JH.. 28
2-8-3- آنالیز امنیت JH.. 29
2-8-4- مزیت JH............................................................................................................................................... ............................................................................................................................................... 30
2-8-5- نتیجه. 30
2-9- نتیجهگیری.. 30
2-10- دلایل انتخاب الگوریتم JH و ارزیابی آن. 31
فصل 3- الگوریتم JH. 33
مقدمه 33
3-1- معرفی الگوریتم چکیده ساز JH.. 33
3-2- نماد ریاضی و پارامترهای به کار گرفتهشده در تابع چکیده ساز JH.. 37
3-3- لایه S-box تابع چکیده ساز JH.. 38
3-4- تبدیل خطی لایه L. 39
3-5- جایگشت Pd. 40
3-6- جایگشت 𝛑d. 40
3-7- جایگشت P´d. 41
3-8- جایگشت ..... 41
3-9- رابطه جایگشت Pd. 41
3-10- تابع دور Rd. 42
3-11- گروهبندی Grouping. 43
3-12- Grouping و De-grouping برای محاسبه دور چرخش: 43
3-13- چرخش ثابت روی تابع Ed. 45
3-14- ساختار تابع فشردهساز Fd. 45
3-15- مروری بر FPGA. 47
3-15-1- روش های مختلف طراحی با استفاده از FPGA.. 49
3-15-2- مراحل مختلف انجام یک پروژه FPGA به صورت زیر می باشد. 51
3-15-3- نگاهی بر معماری FPGA های امروزی.. 51
3-15-4- سلول های منطقی.. 51
3-15-5- منابع اتصالات داخلی.. 52
3-15-6- منابع حافظه 52
3-15-7- نتیجه گیری......................................................................................................................................... ......................................................................................................................................... 53
فصل 4- شبیهسازی و سنتز. 55
مقدمه: 55
4-1- معماری مورد استفاده در شبیه سازJH.. 55
4-1-1- تجزیه و تحلیل شکل کلی طرح اصلی.. 56
4-1-2- معماری واجزای بلوک برای 42 دور. 58
4-1-3- ماشین حالت (FINITE STATE MACHINE) 59
4-2- بررسی الگوریتم شبیهسازی برای JH-224 بیتی.. 61
4-2-1- بلوک (Data unit)Top module. 61
4-2-2- بلوک مدار Control unit 62
4-2-3- مدار کنترل 63
4-2-4- مدار حالت و بلوک FSM Controller. 64
4-2-5- رابط ورودی و خروجیi/o. 67
4-2-6- ارتباط بین ورودی و خروجی مدار. 68
4-3- برنامه شبیه ساز ISE. 69
4-3-1- برنامه شبیه ساز Implemention. 69
مرحله به مرحله هریک از بلوک ها نشان داده شده است. 69
4-3-2- برنامه شبیه ساز سیمیلاتور(Simulatior) 72
4-4- نتیجهگیری.. 89
فصل 5- نتیجهگیری و پیشنهادها 91
مراجع 94
پیوست 1: کدهای VHDL. 98
پیوست 2: واژه نامه فارسی به انگلیسی.. 127
پیوست 3: واژه نامه انگلیسی به فارسی.. 129
Abstract 130
منبع:
ندارد