Download presentation
Presentation is loading. Please wait.
Published byΛυσάνδρα Νικολάκος Modified over 6 years ago
1
رمزهای قطعه ای مبتنی بر فصل های2، 3، 4 و 5 از کتاب
Network Security, Principles and Practice,3rd Ed. ویرایش شده توسط: حمید رضا شهریاری
2
فهرست مطالب تعاريف رمزهای کلاسيک
الگوریتمهای رمزهای متقارن و رمزهای قطعه ای استانداردهای رمزگذاری آمريکا استاندارد رمزگذاری پیشرفته AES استفاده از رمزهای قطعه ای مدهای کاری رمزهای قطعه ای لغت نامه پیوست 1: DES پیوست 2: 3DES,IDEA,Blowfish, RC5, CAST-128
3
برای دسترسی به معادل انگلیسی کلمات به اسلاید لغت نامه مراجعه نماید.
4
فهرست مطالب استفاده از رمزهای قطعه ای رمزهای کلاسيک تعاريف
الگوریتمهای رمزهای متقارن و رمزهای قطعه ای استانداردهای رمزگذاری آمريکا استاندارد رمزگذاری پیشرفته AES استفاده از رمزهای قطعه ای مدهای کاری رمزهای قطعه ای لغت نامه پیوست 1: DES پیوست 2: 3DES,IDEA,Blowfish, RC5, CAST-128
5
تعاریف plaintext - the original message ciphertext - the coded message
cipher - algorithm for transforming plaintext to ciphertext key - info used in cipher known only to sender/receiver encipher (encrypt) - converting plaintext to ciphertext decipher (decrypt) - recovering ciphertext from plaintext cryptography - study of encryption principles/methods cryptanalysis (codebreaking) - the study of principles/ methods of deciphering ciphertext without knowing key cryptology - the field of both cryptography and cryptanalysis
6
رمزنگاری متقارن (Symmetric)
یا معمولی/کلید خصوصی/ تک کلیدی فرستنده و گیرنده از یک کلید مشترک استفاده می کنند تمام رمزنگاریهای کلاسیک از نوع متقارن هستند تنها نوع رمزنگاری تا قبل از دهه 70
7
مدل رمزنگاری متقارن
8
نیازمندیها دو نیازمندی برای استفاده امن از رمزنگاری متقارن:
یک الگوریتم رمزنگاری قوی یک کلید سری که تنها فرستنده و گیرنده از آن آگاه هستند Y = EK(X) X = DK(Y) فرض بر آن است که الگوریتم برای همه مشخص است. بنابراین نیاز به یک کانال امن برای توزیع کلید است.
9
رمزنگاری می تواند توسط ابعاد زیر مشخص شود: تعداد کلیدهای مورد استفاده
نوع عملهای مورد استفاده برای رمز کردن جایگزینی/تبدیل/ضرب تعداد کلیدهای مورد استفاده یک کلید یا خصوصی/دو کلید یا عمومی روش پردازش متن واضح بلوکی/جریانی
10
انواع حملات تحلیل رمزنگاری
ciphertext only only know algorithm / ciphertext, statistical, can identify plaintext known plaintext know/suspect plaintext & ciphertext to attack cipher chosen plaintext select plaintext and obtain ciphertext to attack cipher chosen ciphertext select ciphertext and obtain plaintext to attack cipher chosen text select either plaintext or ciphertext to en/decrypt to attack cipher
11
جستجوی تمام حالات (Brute Force Search)
ابتدایی ترین حمله فرض بر این است که متن واضح قابل شناسایی است.
12
دیگر تعاریف امنیت مطلق امنیت محاسباتی:
مستقل از قدرت محاسباتی در دسترس، متن رمز شده اطلاع کافی برای تعیین قطعی متن واضح ارائه نکند (و بنابراین الگوریتم رمز مستقل از مدت زمانی که دشمن در اختیار دارد قابل شکستن نباشد) امنیت محاسباتی: با داشتن منابع محاسباتی محدود (مانند زمان )، رمز قابل شکستن نباشد.
13
فهرست مطالب تعاريف رمزهای کلاسيک
الگوریتمهای رمزهای متقارن و رمزهای قطعه ای استانداردهای رمزگذاری آمريکا استاندارد رمزگذاری پیشرفته AES استفاده از رمزهای قطعه ای مدهای کاری رمزهای قطعه ای لغت نامه پیوست 1: DES پیوست 2: 3DES,IDEA,Blowfish, RC5, CAST-128
14
رمزهای کلاسیک از زمان جنگ جهانی دوم مورد استفاده قرار می گرفتند
قبل از به وجود آمدن سیستم های کامپیوتری امروزی بصورت دستی انجام می شدند. مبتنی بر دو روش اصلی جايگشتی و جايگزينی است
15
رمزهای کلاسیک جایگشتی جانشینی توزیع فرکانسها تعداد رخدادها
جابجایی بین حروف متن اصلی هدف diffusion (درهمریختگی) بيشتر است شکست رمز سختتر اما اگر یک pattern (الگو) آشکار شود، همه متن شکسته شده است. جانشینی جانشینی یک حرف با حرف دیگر تک الفبایی چند الفبایی حملات شناخته شده با استفاده از: توزیع فرکانسها تعداد رخدادها حروف مشابه و احتمال کلمات تحلیلpattern (الگوها)
16
جانشینی (سزار) - رمز تک الفبایی
send another catapult abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz K = y C = P + K (mod 26) r rdmc zmnsqds bzszotks تنها از يک فرمول جايگزينی مشابه فرمول فوق استفاده می شود به خاطر سپاری آنها آسان است مشاهده patternها به آسانی امکان پذير است رمز تک الفبایی
17
جانشینی چندالفبایی رمز چندالفبايی
استفاده از فرمول های جانشينی مختلف بصورت متوالی منجر به کاهش pattern ها می شود همچنان می توان از توزیع حروف برای شکست رمز استفاده کرد
18
جانشینی 213 abcdefghijklmnopqrstuvwxyz
send another catapult abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz 2 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz 1 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz 3 Ufqf bqqukgs fcudrvov
19
جدول Vigenere نوعی رمز جانشینی چند الفبایی محسوب می شود
از يک ماتریس 26 در 26 و يک کليد برای رمزگذاری متن استفاده می شود حروف متوالی کليد، سطر ماتريس و حروف متوالی متن، ستون ماتريس را مشخص می کنند. کليد معمولا يک کلمه چندحرفی است که تکرار می شود. M = SEND ANOTHER CATAPULT K = h a i l c e a s e r h a i l c e a s e C = z e v o c r o l l v y c i e c t u d x
20
Rotor Machines ماشین روتر يک پیاده سازی الکترونیکی-مکانیکی از رمزچندالفبايی محسوب می شود در این روش، داده ها از داخل تعدادی سيلندر که در مقابل هم قرار گرفته اند، عبور می کنند. به ازای هر حرف از ورودی، سيلندر اول به اندازه يک حرف می چرخد با يک دور گردش کامل هر روتر ، روتر بعدی به اندازه يک حرف جابجا می شود دوره تناوب ماشین روتر با افزایش تعداد روترها افزایش می يابد(26n) آلمان ها اعتقاد داشتند که ماشین روتر طراحی شده توسط آنها، Engima، غیرقابل شکست است، ولی متفقین توانستند رمز آن را کشف کند و بسياری از اطلاعات سری آنها را فاش کند.
21
Rotor Machines x y i j m c k z o v o h u k g v m a e f q r g a v t d h
w d l s t e d n l o a h z c e p i g u j q j f n w s b y w b x Enigma - German Machine had 3 rotors
22
رمز جایگشتی جابجایی حروف در متن اصلی بدون تغيير حروف الفبا
با هدف ایجاد پراکندگی امکان استفاده ترکیبی از آن با رمز جانشینی ايده اساسی مورداستفاده در رمزنگاری متقارن می باشد
23
مثال (جایگشتی ستونی) ايده : متن را بصورت سطری بنويسيم و بصورت ستونی بخوانيم کلید : تعداد ستونها (در اینجا 5) کليد : می توان ترتيب نوشتن ستون ها را نيز تغيير داد. S E N D * A N O T H E R * C A T A P U L T * * * * = SAETTENRA*NO*P*DTCU**HAL*
24
انواع حملات انواع حملات وارده بر اساس امکانات تحليلگر
Cipher text Only : تحلیلگر تنها متن رمزشده را دارد. Known Plaintext: تحلیلگر چند نمونه از متن اصلی و متن رمز شده متناظر با آن را دارد. Chosen Plaintext: تحلیلگر میتواند الگوریتم رمز را بر روی مقدار زیادی از متن واضح اعمال نماید و متن رمز شده را ببيند. * در کليه حالت فوق فرض شده است که الگوريتم رمرنگاری بر تحليلگر روشن است
25
ایدههای تحلیل رمز کلاسیک
فراوانی حروف (etanos…) فراوانی ترکیبات حروف (th, nt) حروف (تشخیص) ابتدا و انتهای کلمه (th___, ___nt, ___gh) نظم موجود در الفبای زبان متد Kasiski : اين روش بر مبنای يافتن الگوهای تکراری(عموما سه حرفی) در متن رمزشده و پيدا کردن طول کليد مورداستفاده استوار است. ايده : فاصله بين دو تکرار از الگوهای تکراری، بايد حتما بر طول کليد مورد استفاده بخشپذير باشد. حملات Brute Force
26
تحلیل رمز کلاسيک(مثال)
Aerial reconnaissance reports enemy reinforcements estimated at battalion strength entering your sector PD Clarke فراوانی حروف متن اصلی
27
تحلیل رمز کلاسيک(مثال)
aerialreco nnaissance reportsene myreinforc ementsesti matedatbat talionstre ngthenteri ngyoursect orPDClarke ANRMEMTNNO ENEYMAAGGR RAPRETLTYP IIOENEIHOD ASRITDOEUC LSTNSANNRL RASFETSTSS ENEOSBTEER CCNRTARRCK OEECITEITE جایگشتی (10 ستونی)
28
تحلیل رمز کلاسيک(مثال)
ANRMEMTNNOENEYMAAGGRRAPRETLTYPIIOENEIHODASRITDOEUCLSTNSANNRLRASFETSTSSENEOSBTEERCCNRTARRCKOEECITEITE فراوانی حروف متن رمز شده
29
تحلیل رمز کلاسيک از مقايسه نمودارهای قبلی می توان فهميد در رمزنگاری جايگشتی : فراوانی حروف در متن رمزشده تفاوتی با فراوانی متن اصلی ندارد. تحليلگر نمی تواند از نمودارهای فراوانی استفاده کند. ولی در جايگزينی تک الفبايی اين امکان وجود دارد(مطابق شکل اسلايد بعدی) با مقايسه اين نمودار با نمودار استاندارد فراوانی حروف، می توان تناظر احتمالی حروف را پيدا کرد.
30
تحلیل رمز کلاسيک(مثال)
DHULDOUHFRQQLVVDQFHUHSRUWVHQHPBUH . . . فراوانی حروف متن رمزشده (تک الفبایی)
31
فهرست مطالب تعاريف رمزهای کلاسيک
الگوریتمهای رمزهای متقارن و رمزهای قطعه ای استانداردهای رمزگذاری آمريکا استاندارد رمزگذاری پیشرفته AES استفاده از رمزهای قطعه ای مدهای کاری رمزهای قطعه ای لغت نامه پیوست 1: DES پیوست 2: 3DES,IDEA,Blowfish, RC5, CAST-128
32
رمزگذاری کلاسيک-رمزگذاری مدرن
روشهای رمزگذاری مدرن، علاوه بر بر اعمال جابجایی و جايگشت از توابع ساده مانند XOR استفاده می شود. مجموعه اعمال فوق طی مراحل متوالی روی متن اوليه اعمال می شوند. تکنيک بکارگرفته شده در Rotor Machine ها الهام بخش روشهای رمزگذاری مدرن بوده است
33
تابع رمزنگاری کامل(One-Time Pad)
ايده : برای رمزکردن يک داده به طول n کليدی به طول n هزينه کنيم. در اين صورت به ازای هر M و C داريم: P(MC) = P(M) يعنی داشتن هر تعداد متن نمونه رمزشده کمکی به تحليلگر نمی کند. امنيت اين روش به تصادفی بودن کليد بستگی دارد.
34
تابع رمزنگاری کامل(One-Time Pad)
در عمل استفاده از چنین روشی مقدور نيست توليد کليد تصادفی به حجم بالا از نظر عملی دشوار است. توزيع امن کليد : اگر بتوانيم کانال امنی برای توزيع کليدی با اين حجم پيدا کنيم، آيا بهتر نيست از همين کانال برای انتقال داده اصلی استفاده کنيم؟! در عمل از روشهایی استفاده می کنيم که شکستن رمز را برای تحليلگر با توجه به تکنولوژيهای موجود و در زمان محدود غيرممکن سازد.
35
برای تبادل این اطلاعات مخفی نیاز به کانال امن داريم.
رمزنگاری متقارن برای تبادل این اطلاعات مخفی نیاز به کانال امن داريم. دو طرف به دنبال برقراری ارتباط محرمانه هستند. ارتباط بر روی محیط نا امن انجام میپذیرد. طرفین پیامهای خود را رمز میکنند. در رمز نگاری متقارن، الگوریتمهای رمز نگاری آنها تابع اطلاعات مخفی است که فقط طرفين از آنها مطلع میباشند. کلید مخفی
36
K محرمانگي شبکه ناامن Adversary EVE 0 1 1 0 1 ...
Bob محرمانگي شبکه ناامن Alice K کلید متقارن به طور امن منتقل میشود
37
الگوریتمهای رمزهای متقارن
رمزهای متقارن را می توان با دو روش عمده توليد کرد رمزهای قطعه ای پردازش پيغام ها بصورت قطعه به قطعه سايز متعارف مود استفاده برای قطعات 64، 128 یا 256 بیتی است رمزهای دنباله ای پردازش پيغام ها بصورت پيوسته
38
رمزهای قطعه ای متن واضح (تقسیم شده به قطعات) قطعات خروجی
39
اصول رمزهای قطعه ای نگاشت قطعات متن واضح به قطعات متن رمزشده بايد برگشت پذير (يك به يك) باشد. الگوریتم قطعات ورودی را در چند مرحله ساده و متوالی پردازش میکند. به این مراحل دور میگوییم. هر دور عموماً مبتني بر تركيب اعمال ساده ای همچون جايگزيني و جایگشت استوار است.
40
فهرست مطالب تعاريف رمزهای کلاسيک
الگوریتمهای رمزهای متقارن و رمزهای قطعه ای استاندارد رمزگذاری داده استاندارد رمزگذاری پیشرفته AES استفاده از رمزهای قطعه ای مدهای کاری رمزهای قطعه ای لغت نامه پیوست 1: DES پیوست 2: 3DES,IDEA,Blowfish, RC5, CAST-128
41
استانداردهای رمزهای قطعه ای
رمزهای قطعه ای استاندارد استاندارد رمزگذاری داده DES استاندارد رمزگذاری پیشرفته AES تحت نظارت National Institute of Science and Technology (NIST)
42
ساختار رمزهای فیستل معمولا الگوریتمهای رمزنگاری از ساختاری تبعیت می کنند که توسط فیستل در سال در IBM پیشنهاد شد. رمزهای فیستل به انتخاب پارامترهای زیر بستگی دارند
43
ساختار رمزهای فیستل طول قطعه (بلوک) طول کلید تعداد دورها
الگوریتم تولید زیرکلیدها هر چه پیچیده تر باشد، تحلیل هم سخت تر می شود. سرعت رمزنگاری/رمزگشایی تابع دور (Round function) سادگی تحلیل
45
استاندارد رمزگذاری داده DES
مرور در سال 1974 توسط IBM توليد شد پس از انجام تغییراتی توسط NSA، در سال 1976NIST آن را پذيرفت. اساس الگوريتم تركيبي از عمليات جايگزيني و جایگشت ميباشد. مشخصات: طول كليد 56 بيت طول قطعههاي ورودي و خروجي : 64 بيت تعداد دورها: 16 دور الگوريتمهاي رمزگذاري و رمزگشايي عمومي هستند, ولي مباني رياضي و اصول طراحي آنها فاش نشد. در گذشته بسیار پر استفاده بود.
46
DES امن نيست! در ژانویه 1999 این الگوریتم توسط آزمون جامع فضای کلید در 23 ساعت شکسته شد! بیش از 1000 هزار کامپیوتر بر روی اینترنت هر یک بخش کوچکی از کار جستجو را انجام دادند. منظور از آزمون جامع فضای کليد همان جستجوی کامل کليد با استفاده از روش Brute Force می باشد. به الگوریتمهای امن تر با طول کلید بالاتر نیاز داریم. علاوه بر اين DES طراحی شفاف و روشن ندارد.
47
استاندارد رمزگذاری داده DES
قطعه 64 بیتی متن واضح زیر کلید دور دور1 تولید زیر کلیدهای 48 بیتی از کلید اصلی 56 بیتی برای هر دور دور2 دور15 دور16 قطعه 64 بیتی متن رمزشده کلید 56 بیتی
48
توسط زمانبندی کلید تولید میشود.
یک دور از DES توسط زمانبندی کلید تولید میشود. Li (32 bit) Ri (32 bit) Ki (48 bit) “round key” f “round function” Why: because decrypting is the same function F can be one-way! Li+1 Ri+1
50
یک دور از DES اعمال انجام شده در هر دور: Li = Ri-1
Ri = Li-1 XOR F(Ri-1, Ki)
51
ساختارFeistel رمز DES + F … X K1 K2 Key Scheduler K K3 K16 Y
Initial Permutation F + … Initial Permutation-1 (64) (32) (48) Key Scheduler (56) K K1 K2 K16 K3 X Y
52
تابع دور DES expansion کلید دوره Ki permutation 6 to 4 S-box 6 to 4
32 expansion 48 کلید دوره Ki 48 Note the confusion and the diffusion 6 to 4 S-box 6 to 4 S-box 6 to 4 S-box 6 to 4 S-box 6 to 4 S-box 6 to 4 S-box 6 to 4 S-box 6 to 4 S-box 32 permutation
53
تابع دور DES S1 S2 S3 S4 S5 S6 S7 S8 P + + + + + + + + + + + + + + + +
54
Key-schedule Ci-1 (28 bit) Di-1 (28 bit) Permuted choice شیفت به چپ Ki
PC2 48 bits Ci (28 bit) Di (28 bit)
55
زمانبندی کلید هر بیت کلید حدوداً در 14 دور از 16 دور استفاده میشود. K
(56) هر بیت کلید حدوداً در 14 دور از 16 دور استفاده میشود. Permuted Choice 1 (28) (28) Permuted Choice 2 Left shift(s) (28) (28) K1 (48) Permuted Choice 2 Left shift(s) K2 (48) …
56
بررسي s-boxدر DES تنها بخش غيرخطي از الگوريتم DES می باشد غيرقابل برگشت ميباشند اصول طراحي آنها سري است استفاده از 8 S-Box كه هريك 6 بيت ورودي را به 4 بيت خروجي تبديل مي كنند. بيتهاي 1 و 6 : انتخاب يكي از 4 سطر ماتريس بيتهاي 2 تا 5 : انتخاب يكي از 16 ستون ماتريس برگرداندن عدد موجود در آن خانه از ماتريس به عنوان خروجي در مجموع 48 بيت ورودي از 8 S-Box مختلف عبور مي كنند و 32 بيت برمي گردانند
57
یک S-Box از DES شماره ستون شماره سطر↓ 1 2 3 4 5 6 7 8 9 10 11 12 13 14
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
58
توانمندي DES اندازه كليد حمله زماني
56 بيت داراي كل فضاي حالت 256 = 7.2 * 1016 حمله آزمون جامع هرچند مشكل, ولي امكانپذير است آخرين گزارش ثبت شده در سال 1999 نشان از كشف كليد در طول 22 ساعت داده اند! حمله زماني پياده سازي DES را مورد هدف قرار مي دهند الگوريتم براي ورودي هاي مختلف در زمانهاي متفاوت پاسخ مي دهد بيشتر در كارتهاي هوشمند مشكل زا مي شوند
59
Time to break a code (106 decryptions/µs)
60
ویژگیهای مطلوب در الگوریتم رمزنگاری
رمزگذاری آسان رمزگشایی آسان سرعت بالای رمزگذاری و رمزگشایی diffusion and confusion دیگر ویژگیها برای کاربردهای خاص: کارت هوشمند: نیاز به حافظه و قدرت پردازش کم
61
Diffusion and Confusion
متن رمز باید به نحو پیچیده ای به متن واضح و کلید وابسته باشد. هدف آن است که تعیین ارتباط ویژگیهای آماری متن رمز و متن واضح مشکل باشد. Diffusion (انتشار) هر بیت متن واضح باید بر هر بیت متن رمز تاثیر داشته باشد. هر بیت کلید باید بر هر بیت متن رمز تاثیر داشته باشد. هدف پنهان سازی ویژگیهای آماری متن واضح است.
62
Multiple DES مسئله : راه حل : آسيب پذيري DES در مقابل حمله آزمون جامع
استفاده از الگوريتم هاي رمزنگاري ديگر پيچيده كردن الگوريتم DES از طريق اضافه كردن مراحل رمزنگاري و افزايش طول كليد
63
2DES E M C K1 K2 D C M K2 K1
64
2DES حمله ملاقات در میانه عليه 2DES نتيجه :
تحليلگر يك زوج (P,C) را مي داند بطوريكه : C=Ek1,k2[P] با اين فرض داريم : Ek1[P]=Dk2[C] با آزمايش همه كليدها و انجام رمزگذاري و رمزگشايي به دو جدول مي رسيم عناصر جدولها را براي رسيدن به يك انطباق جستجو مي كنيم در مرحله اول حداكثر 248 كليد مي تواند منجر به انطباق شود با تكرار مراحل(يافتن انطباق های جديد)، احتمال کليدهای مختلف که منجر به انطباق شده اند، بشدت كاهش مي يابد انجام عمليات فوق از O(256) مي باشد نتيجه : DES دو مرحله اي در مقابل حمله آزمون جامع از DES يك مرحله اي مقاومتر نيست
65
3DES با دو کلید استفاده از الگوريتم 3DES
از دو مرحله رمزنگاري و يك مرحله رمزگشايي با دو كليد مجزا استفاده مي شود فضاي كليد به 112 بيت گسترش مي يابد در صورت استفاده از يك كليد يكسان،3DES با DES مطابقت مي كند نسبت به الگوريتمهاي ديگر مانند Blowfish و RC5 سرعت كمتري دارد تاكنون حمله اي عليه آن گزارش نشده است
66
3DESبا دو کلید C = EK1[DK2[EK1[P]]] C = ciphertext P = Plaintext
EK[X] = encryption of X using key K DK[Y] = decryption of Y using key K E D M C K1 K2
67
3DES استفاده از الگوريتم 3DES
از دو مرحله رمزنگاري و يك مرحله رمزگشايي با سه كليد مجزا استفاده مي شود فضاي كليد به 168 بيت گسترش مي يابد در صورت استفاده از يك كليد يكسان،3DES با DES مطابقت مي كند نسبت به الگوريتمهاي ديگر مانند Blowfih و RC5 سرعت كمتري دارد تا كنون حمله اي عليه آن گزارش نشده است
68
ويژگيهاي الگوريتمهاي رمزنگاري مدرن
طول كليد متغير عملگرهاي پيچيده(افزايش غيرخطي بودن) انجام عمليات روي هر دو نيمه داده در هر دور چرخش(rotation) وابسته به داده چرخش وابسته به كليد S-Box هاي وابسته به كليد طول بلاك داده و رمز متغير تعداد دورهاي متغير استفاده از توابع F متغير(از يك دور تا دور بعد فرق مي كند)
69
IDEA ابداع شده توسط Messay و Lai در سال 1990
مبتني بر تركيب عمليات مختلف(XOR، جمع و ضرب) انجام كليه عمليات روي زيربلاك هاي 16 بيتي(بدون اعمال جايگشت) سرعت بيشتر نسبت به DES(در پياده سازي نرم افزاري)
70
IDEA اهداف طراحي IDEA طول بلاك : براي جلوگيري از حملات آماري بايد به اندازه كافي بزرگ باشد طول كليد : براي جلوگيري از حمله جستجوي كامل افزايش Confusion افزايش Diffusion
71
IDEA ويژگيها طول كليد : 128 بيت طول بلاك : 64 بيت تعداد دورها : 8 دور
انجام عمليات روي عملوندهاي 16 بيتي
72
IDEA رمزنگاري : هر دور از الگوريتم شامل مراحل زير است:
تقسيم بلاك 64 بيت ورودي به چهار زيربلاك 16 بيتي تركيب با 4 زيربلاك وابسته به كليد(Z4...Z1) ورود دو زير بلاك از بلاكهاي فوق و 2 زيربلاك وابسته به كليد به كليد(Z6,Z5) به ساختار MA تركيب زيربلاكها با استفاده از جمع و ضرب مدولي در MA تركيب زيربلاك ها بعد از خروج از MA جابجايي نهايي زيربلاكها
75
IDEA - MA
79
IDEA توليد زيركليد در مجموع 52 زيركليد توليد مي شود: 6*8 + 4
تقسيم كليد 128 بيتي اوليه به 8 گروه 16 بيتي چرخش به چپ به اندازه 25 بيت تقسيم مجدد به گروه هاي 8 بيتي و توليد زيركليدهاي جديد
80
IDEA تحليل IDEA تا كنون هيچ حمله عملي عليه IDEA شناخته نشده است
به نظر مي رسد تا مدتها نسبت به حملات امن باشد طول كليد 128 بيتي حمله Brute-Force را غيرممكن مي كند
81
نکات پیاده سازی اصول پیاده سازی نرم افزاری اصول پیاده سازی سخت افزاری
الگوریتم باید از استفاده subblock های معمول در نرم افزار (8، 16 یا 32 بیت) استفاده کند. IDEA از بلوکهای 16 بیتی استفاده می کند قابل پیاده سازی با استفاده از اعمال ساده مانند جمع،شیفت و ... اصول پیاده سازی سخت افزاری شباهت رمزنگاری و رمزگشایی به طوری که تنها در نحوه اعمال کلید متفاوت باشند. (IDEA و DES این گونه هستند) ساختار منظم: الگوریتم باید دارای ساختار منظمی باشد به نحوی که پیاده سازی توسط VLSI را تسهیل نماید. (IDEA از دو ماجول پایه ای تشکیل شده است)
83
Blowfish طراحي شده توسط Schneier در سال 94/1993
وجود پياده سازي هاي پرسرعت روي پردازنده هاي 32بيتي فشردگي: نياز به كمتر از 5k حافظه پياده سازي آسان تحليل الگوريتم آسان طول كليد متغير: درجه امنيت قابل تغيير است.
84
Blowfish ويژگيها طول بلاك : 64 بيت تعداد دورها : 16 دور
طول كليد متغير : 32 تا 448 بيت توليد زيركليد و S-Box هاي وابسته به كليد 18 زيركليد 32 بيتي كه در آرايه P ذخيره مي شوند 4 S-Box 8*32 كه در آرايه S ذخيره مي شوند بازتوليد كند زيركليد ها : توليد زيركليدها به 521 مرحله رمزنگاري احتياج دارد
87
Blowfish تحليل استفاده از زيركليدها و S-Box هاي وابسته به كليد تحليل رمز را دشوار مي كند. تغيير هر دو نيمه داده در هر دور امنيت را افزايش مي دهد با طول كليد متغير و افزايش آن، حمله Brute-force غيرممكن مي شود
88
RC5 توسط Ron Riest در 1994 اهداف طراحی
انطباق با نرم افزارها و سخت افزارهاي مختلف سرعت اجراي زياد : عمليات روي كلمه ها انجام مي شوند انطباق با پردازنده هاي با تعداد بيتهاي متفاوت طول بلاك متغير طول كليد متغير تعداد دورهاي متغير نياز به حافظه كم طراحي و تحليل الگوريتم ساده تعداد دورها وابسته به داده است : تحليل رمز را مشكل مي كند
89
RC5 W : طول كلمه بر حسب بيت(16/32/64)، طول بلاك = 2W.
يك خانواده از الگوريتمهاي رمزنگاري را در بر ميگرد RC5(w, r, b) W : طول كلمه بر حسب بيت(16/32/64)، طول بلاك = 2W. R : تعداد دورها(0…255) B : تعداد بايتهاي كليد(0…255) نسخه نوعي : RC5-32/12/16 طول كلمات 32 بيتي، طول بلاك 64 بيت مي باشد استفاده از 12 دور استفاده از كليد 16 بايتي(128 بيتي)
90
RC5 توليد زيركليد توليد 2r+2 زيركليد w بيتي
زيركليدها در آرايه s[0…T-1] ذخيره مي شوند مقداردهي S به مقادير اوليه ثابت شبه تصادفي مقدار بايتي كليد به داخل آرايه L كپي مي شود دو آرايه S و L با استفاده از ريزعمليات شيفت و جمع مدولي باهم تركيب شده و آرايه نهايي S را تشكيل مي دهند
93
RC5 – الگوريتم رمزنگاري
94
RC5 – الگوريتم رمزگشايي
95
RC5 مدهاي مختلف RC5 ECB : همان RC5 معمولي است
CBC : همان مد CBC مورد استفاده در الگوريتم DES ميباشد. بلاك ورودي و خروجي هر دو مضربي از 2w هستند CBC-Pad : طول بلاك ورودي محدوديتي ندارد. بلاك خروجي حداكثر به اندازه 2w بيت از بلاك ورودي بزرگتر است CTS : قبول بلاك ورودي به طول دلخواه و توليد خروجي به اندازه بلاك ورودي
97
CAST-128 ابداع شده توسط Adams و Tavares در سال 1997
طول كليد متغير: از 40 تا 128 بيت(افزايش 8 بيتي) تعداد دور : 16 دور مشابه ساختار كلاسيك Feistel مي باشد با دو تفاوت زير: در هر دور از دو زيركليد استفاده مي كند تابع F به دور(round) بستگي دارد در حال استفاده در PGP
100
مقايسه سرعت الگوريتمها
101
فهرست مطالب تعاريف رمزهای کلاسيک
الگوریتمهای رمزهای متقارن و رمزهای قطعه ای استانداردهای رمزگذاری آمريکا استاندارد رمزگذاری پیشرفته AES استفاده از رمزهای قطعه ای مدهای کاری رمزهای قطعه ای لغت نامه پیوست 1: DES پیوست 2: 3DES,IDEA,Blowfish, RC5, CAST-128
102
استفاده از رمزهای قطعه ای
رمزهای قطعه ای به طور مستقل امنیت زیادی را به ارمغان نمی آورند. بلکه بايد در مدهای کاری مناسب مورد استفاده قرار گيرند رمزهای قطعه ای به عنوان اجزای سازنده الگوریتمهای رمز نگاری استفاده میشوند.
103
استفاده از رمزهای قطعه ای-2
فرض کنیم یک رمز قطعه ای امن داریم. چگونه از آن برای رسیدن به اهداف خود بهره جوییم؟ مساله اساسی: در برخی موارد علی رغم بهره برداری از عناصر مرغوب، کیفیت نهایی دلخواه نیست. مثال: ساختمان ضعیف با وجود استفاده از مصالح قوی پوشاک نامرغوب با وجود استفاده از پارچه های مرغوب غذای نا مناسب با وجود استفاده از مواد اولیه با کیفیت در ادامه خواهيم ديد مدهای کاری که متن های مشابه را به متن های رمزشده يکسان تبديل می کنند، امن نيستند. صرف نظر از رمز قطعه ای مورد استفاده!
104
وضعیت ایده آل ساختار الگوریتم رمز نگاری متقارن(مد کاری) به گونه ای باشد که قابلیت های عناصر سازنده خود (رمزهای قطعه ای) را به ارث ببرد. يعنی با اطمينان از رمزهای قطعه ای، بتوانيم از الگوريتم رمزنگاری نيز مطمئن شويم. توضيحات بيشتر در پيوست
105
فهرست مطالب الگوریتمهای رمزهای متقارن و رمزهای قطعه ای
استانداردهای رمزگذاری آمريکا استاندارد رمزگذاری پیشرفته AES استفاده از رمزهای قطعه ای مدهای کاری رمزهای قطعه ای لغت نامه پیوست 1: DES پیوست 2: 3DES,IDEA,Blowfish, RC5, CAST-128
106
مدهای کاری رمزهای قطعه ای
امروزه مد های کاری با توجه به امنیت قابل اثبات طراحی میشوند. مدهای کاری می توانند از رمزهای قطعه ای AES، DES، CAST-128، ... استفاده کنند برخی مدهای کاری پراهميت عبارتند از : ECB: Electronic Code Book CBC: Cipher Block Chaining CTR: Counter Mode CFB: Cipher Feed Back OFB: Output Feed Back
107
مد کاری ECB رمز نگاری: رمز گشایی: E E E D D D P1 C1 K P2 C2 K PN CN K
108
این مد امن محسوب نمیشود حتی اگر از یک رمز قطعه ای قوی استفاده کنیم.
بررسی مد کاری ECB اشکال اساسی: هر متن واضح به ازاء کلید ثابت همیشه به یک متن رمز شده نگاشته میشود. دشمن میتواند دریابد که پیامهای یکسان ارسال شده اند. این مد امن محسوب نمیشود حتی اگر از یک رمز قطعه ای قوی استفاده کنیم. ECB مثالی از مواردی است که علی رغم بهره برداری از عناصر مرغوب، کیفیت نهایی دلخواه نیست.
109
مد کاری CBC-1 این مد از یک مقدار دهی اولیه تصادفی،IV، بهره میگیرد.
IV نيز بايد بصورت رمز شده ارسال شود. برای اينکار می توان از مد کاری ECB استفاده کرد. در صورت ارسال IV بصورت متن واضح، تحليلگر ممکن است بتواند با فرستادن IV جعلی منجر به تغيير پيغام واگشایی شده در سمت گيرنده شود. هر متن واضح به ازاء کلید ثابت هر بار به یک متن رمز شده متفاوت نگاشته میشود (زیرا مقدار IV تغییر مینماید).
110
مد کاری CBC-2 رمز نگاری: رمز گشایی: IV IV E E E E … D D D D P1 C1 K +
PN CN-1 K + IV CN-1 … رمز گشایی: D C1 P1 K + D C2 P2 K + D C3 P3 K + D CN PN K + IV CN-1
111
Electronic Codebook (ECB)
112
Cipher Block Chaining (CBC)
113
Cipher Feedback (CFB)
114
Output Feedback (OFB)
115
Counter (CTR)
116
بررسی مد کاری CBC Cipher Block Chaining
ملزومات امنیتی: IV باید کاملاً غیر قابل پیش بینی باشد رمزنگاری: عملیات رمزنگاری قابل موازی سازی نیست. مقدار IV و متن واضح باید در دسترش باشند. رمزگشایی: عملیات رمزگشایی قابل موازی سازی است. مقدار IV و متن رمزشده باید در دسترش باشند. طول پیام: در برخی موارد ممکن است وادار به افزایش طول پیام بشویم. طول پیام باید مضربی از طول قطعه باشد. پیاده سازی: رمز گشایی و رمز نگاری، هر دو باید پیاده سازی شوند.
117
مد کاری CTR Counter-mode Encryption
رمز نگاری↓ رمزگشایی↓ شمارنده به طول بلاکهای مورنظر انتخاب شده و می تواند با مقدار اوليه صفر يا بصورت تصادفی انتخاب شود counter + i counter + i (n) (n) E E K K (n) (n) (n) (n) (n) (n) Pi Ci + Ci Pi +
118
بررسی مد کاری CTR ملزومات امنیتی: مقادیر شمارنده، در بازه طول عمر کلید، باید مجزا باشند. رمزنگاری: عملیات رمزنگاری قابل موازی سازی است. برای عملیات رمزنگاری نیازی به متن واضح نیست. مقادیر شمارنده برای عملیات رمزنگاری مورد نیاز است. رمزگشایی: عملیات رمزگشایی قابل موازی سازی است. برای عملیات رمزگشایی نیازی به متن رمز شده نیست. طول پیام: هیچ گاه نیازی به افزایش طول پیام نداریم. متن رمز شده میتواند هم طول با پیام کوتاه شود. پیاده سازی: تنها رمز نگاری باید پیاده سازی شود. برای استفاده از رمزقطعه ای صرفا مقدار شمارنده موردنیاز است برای استفاده از رمزقطعه ای صرفا مقدار شمارنده موردنیاز است. می توان ابتدا مقدار EK(counter + i) را محاسبه نمود و سپس با رسيدن Ci متن نهايی را بازيابی کرد.
119
مد کاری CFB رمز نگاری↓ رمزگشایی↓ E E K K Pi Ci + Ci Pi +
initialized with IV initialized with IV (s) (s) shift register (n) shift register (n) (n) (n) E E K K (n) (n) select s bits select s bits (s) (s) (s) (s) (s) (s) Pi Ci + Ci Pi +
120
مد کاری OFB رمز نگاری↓ رمزگشایی↓ E E K K Pi Ci + Ci Pi +
initialized with IV initialized with IV (s) (s) shift register (n) shift register (n) (n) (n) E E K K (n) (n) select s bits select s bits (s) (s) (s) (s) (s) (s) Pi Ci + Ci Pi +
121
مقایسه CFB و OFB موارد استفاده CFB و OFB عیب CFB:
رمز جریانی کاربردهای بی درنگ عیب CFB: انتشار خطای انتقال OFB این عیب را برطرف می کند.
122
فهرست مطالب تعاريف رمزهای کلاسيک
الگوریتمهای رمزهای متقارن و رمزهای قطعه ای استانداردهای رمزگذاری آمريکا استاندارد رمزگذاری پیشرفته AES استفاده از رمزهای قطعه ای مدهای کاری رمزهای قطعه ای لغت نامه پیوست 1: DES پیوست 2: 3DES,IDEA,Blowfish, RC5, CAST-128
123
استاندارد رمزگذاری پیشرفته AES
NIST در سال 1997 مسابقه ایی دو مرحله ایی برای طراحی استاندارد جدید برگزار کرد. تمام طراحی ها باید بر اساس اصول کاملاً روشن انجام شوند. سازمانهای دولتی آمریکا حق هیچ گونه دخالتی در طراحی الگوریتم ندارند.(خوشبختانه!) در سال 2000 رایندال(Rijndael) به عنوان برنده اعلام شد استاندارد جديد تحت عنوان استاندار رمزگذاری پیشرفته AES مورد قبول واقع شد.
124
فینالیست های مسابقه AES
MARS RC6 Rijndael Serpent Twofish مقاله زير اطلاعات بيشتر درباره مقایسه فيناليست ها ارائه می دهد: A Performance Comparison of the Five AES Finalists B. Schneier and D. Whiting منتخب!
125
مشخصات استاندارد رمزگذاری پیشرفته AES
طول كليد 128، 192 و یا 256 بیت طول قطعههاي ورودي و خروجي : 128، 192 و یا 256 بیت تعداد دورها به طول کلید و نيز طول قطعه بستگی دارد. برای 128 بیت: 9 دور
126
نحوه کار AES-128 الگوریتم زمان بندی کلید نقش تهیه کلید برای هر دور بر اساس کلید اصلی را بر عهده دارد. متن واضح 128 بیتی به شکل یک ماتریس حالت 4×4 در می آید. هر درایه یک بایت از متن واضح را نشان می دهد این ماتریس در انتها مولد متن رمز است.
127
نحوه کار AES-128 در هر دور 4 عمل بر روی ماتريس حالت اعمال میشود.
جایگزینی بایتها : جایگزینی درایه های ماتریس حالت با استفاده از یک s-box جابجایی سطری ترکیب ستونها: ترکیب خطی ستونها با استفاده از ضرب ماتریسی اضافه نمودن کلید دور: جمع مبنای دو ماتریس حالت با کلید دور
128
s-box نوعی تابع غیر خطی محسوب می شود توسط یک جدول پیاده سازی میشود.
در آن مصالحه ای بين کارآيی و امنيت برقرار است: جدول بزرگ: الگوریتم قویتر جدول کوچک: پیاده سازی ساده تر ورودی تابع سطر و ستون درایه جدول را معین کرده و مقدار ذخیره شده در این درایه خروجی تابع است.
129
Rijndael مراحل انجام الگوريتم Rijndael را در قالب يک فلش بررسی می کنيم. ابزار مورد نیاز برای نمایش: Shockwave ActiveX در صورت استفاده از IE با نسخه بالاتر از 4.0 از آدرس زیر قابل دریافت می باشد: فايل Flash بايد در شاخه اسلايد قرار داشته باشد.
130
Rijndael
131
امنیت AES کماکان در حال بررسی از لحاظ مقایسه با DES:
فرض کنید ماشینی وجود دارد که کلید DES را از طریق آزمون جامع در یک ثانیه باز یابی میکند، یعنی در هر ثانیه 255 کلید را امتحان میکند. این ماشین کلید AES را در 149×1012 سال بازیابی مینماید.
132
مراجع مطالعه AES برای اطلاعات بیشتر به آدرسهای زیر رجوع کنید.
133
لغت نامه Authentication احراز هویت Brute Force آزمون جامع AES
استاندارد رمزگذاری پیشرفته DES استاندارد رمزگذاری داده Padding افزایش طول پیام Provable Security امنیت قابل اثبات Differential cryptanalysis تحليل تفاضلي linear cryptanalysis تحليل خطي Substitution جايگزيني Permutation جایگشت NSA: National Security Agency Timing Attack حمله زماني Meet-in-the-Middle attack حمله ملاقات در میانه Round دور Symmetric Encryption Scheme رمزنگاری متقارن Stream Cipher رمزهای دنباله ای Block Cipher رمزهای قطعه ای Symmetric Cipher رمزهای متقارن Key Schedule زمان بندی کلید plaintext متن واضح Confidentiality محرمانگی parallelization موازی سازی MAC: Message authentication code کد احراز تمامیت پیام
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.