59

Data Encryption Standard (DES)

Embed Size (px)

Citation preview

Page 1: Data Encryption Standard (DES)
Page 2: Data Encryption Standard (DES)

امیر مسینائی

Page 3: Data Encryption Standard (DES)

3

فهرست مطالب:

مقدمه1.

DESمعرفی سیستم 2.

: با کلیک بر روی عنوان، به اسالید مربوطه منتقل خواهید شد.توجه

بررسی رمز گذارییDES معرفی الگوریتم رمزگذارییDESبررسی کلید

تشریح الگوریتم اصلیS-Boxو P-Boxمعرفی •

معرفی الگوریتم رمزگشاییDES

DESآنالیز سیستم 3. خصوصیات سیستمDES

شکستنDES

قدرتDES ضعفDES

منابع و مراجع4.

Page 4: Data Encryption Standard (DES)

4

مقدمه:

استاندارد جهت رمزنگاری به یک NISTدر پاسخ به نیاز سازمان IBMشرکت را معرفی کرد. DES، سسیتم اسناد حساس غیر طبقه بندی شده

این سیستم بر مبنای الگوریتم قبلی هارست فیستل با نام لوسیفر عمل می نمود.

سیستم های رمز متقارندنباله ای

قالبیDES

AES

Page 5: Data Encryption Standard (DES)

5

Horst Feistel (January 30, 1915[1]–November 14, 1990) was a German-born cryptographer who worked on the design of ciphers at IBM, initiating research that culminated in the development of the Data Encryption Standard (DES) in the 1970s.

Page 6: Data Encryption Standard (DES)

6

: DESمعرفی سیستم

بیتی64قالب های

متن اصلیرمز گذاریی رمز گشایی متن رمز شدهمتن اصلی

بیتی64قالب های بیتی64قالب های

بیت56کلیدی به طول

Page 7: Data Encryption Standard (DES)

7

: DESبررسی رمزگذاریی

متن اصلی

DESرمزگذار

1 2 . . . 64

1 2 . . . 64

1 2 . . . 64

1 2 . . . 64

1 2 . . . 56

1 2 . . . 64

1 2 . . . 64

1 2 . . . 64

1 2 . . . 64

متن رمز شده

کلید

Page 8: Data Encryption Standard (DES)

8

:DESدر یک سیستم رمزگذاریی

فضاي متن اصلی : •فضاي متن رمز شده : • بیت، 8 بیت، طول کلید اصلی و 56فضاي کلید : که •

هستند (بیت های parity بیت های 8،16،24،32،40،48،56،64.(

Page 9: Data Encryption Standard (DES)

9

معرفی الگوریتم رمزگذاریی DES :1 2 . . . 64

1 2 . . . 321 2 . . . 32

𝐾 1𝑓

XOR

XOR

XOR

𝐾 2𝑓

𝐾 16𝑓

1 2 . . . 321 2 . . . 32

1 2 . . . 64

:DESدر سیستم رمزگذاریی تعداد مراحل برای اینکه تأثیر فروپاشی •

بیت اعمال شود، باید بیشتر 128بهمنی بر مرحله باشد.7از

است. 16تعداد تکرارها برابر •)Rounds=16( بیت 48طول کلیدهای فرعی برابر •

می باشد. دور فیستلی 16عملیات رمزگذاری در •

انجام می شود که در هر دور، یک کلید منحصر به فرد استفاده می گردد.

IP

FP

Page 10: Data Encryption Standard (DES)

10

بررسی کلیدبه هشت بايت تقسيم شود آنگاه DES بيتي 64اگر يك كليد

است . از اين رو هفت بيت از عدد فرد جمع بيت هاي هر بايتيك بايت، بيت هشتم را تعيين مي كند و در نتيجه خطاهاي

ارسال يك بيتي قابل تصحيح هستند .

برابر می باشد.DESتعداد كليدهاي

2

Page 11: Data Encryption Standard (DES)

11

تولید کردن کلیدهای فرعی

Round key 1

Round key 2

Round key 16

هر • در اس�تفاده مورد های کلی�د دور، تماماً از روی کلی�د اص�لی و به

قابل تولید است.یکطرفهصورت الگوریت�م مورد اس�تفاده برای تهیه •

کلید روی از فرع��ی کلیدهای و مشخص الگوریتم��ی اص��لی، رمزگذاری الگوریتم از مس��تقل

بوده و ب�ا دریاف�ت ی�ک کلی�د اصلی بیتی برای 48 کلی�د 16 بیت�ی، 64

اس�تفاده در ه�ر دور فیس�تلی ارائه می دهد.

ShiftingShift Round

One bit 1,2,9,16

Two bits Other

Page 12: Data Encryption Standard (DES)

12

P-Box وS-Boxاین دو مفهوم در بیان ساده عملیات جابجایی و جایگزینی را

انجام می دهند. :P-Boxیک مثال ساده از

5 21 76 8

0 0 11 1 00 0 1

0

یا

0

0

0

1

1

110 0

0

1 1

1

1 1

1

1

1

1

P-Box

Page 13: Data Encryption Standard (DES)

13

S-Boxیک مثال ساده از :

7 6 5 4 3 2 1 0 S

4 4 3 1 2 5 1 7 0

0 1 7 4 1 2 3 1 1

4 5 2 7 2 6 2 1 2

6 0 6 2 4 0 1 7 3

0 0 1 1 1

1 0 1

S-Box

1 0

0 1

0 1 1

5

Page 14: Data Encryption Standard (DES)

14

بر مبنای نظریه پیچیدگی شانون S-Box و P-Boxایده اولیه •استوار است.

هدف اصلی از بین بردن ارتباط مستقیم بین هر بیت از متن اصلی •(یا کلید) با بیت های خروجی (متن رمز شده) و تغییر شاخص های

آماری می باشد.

،از بین بردن ارتباط مذکور بوده و S-Boxدلیل اصلی استفاده از •، تغییر شاخص های آماری است.P-Boxدلیل اصلی استفاده از

Page 15: Data Encryption Standard (DES)

15

•S-Box ها وP-Box ها با توجه به نسبت تعداد بیت های ورودی و گسترش دهنده و فشرده ساز، مستقیمخروجی، به سه دستۀ�

تقسیم بندی می شوند.

و P-Boxعملیات • ه�ا S-Box یک مبنای بر توان�د م�ی ه�ا جدول ثابت جس��تجو اس��ت ممک��ن جدول ای��ن ک��ه پذیرد ص��ورت

) باشد.Blow Fish) و یا متغیر (نظیرDES(نظیر برای S-Boxدر سیستم های رمزنگاری، غالباً از چند •

استفاده شده و سپس خروجی آنها، برای Confusionبرقراری داده می شود.P-Box بهDiffusionبرقراری

Page 16: Data Encryption Standard (DES)

16

) : ارتباط بین متن اصلی و متن رمز شده باید Confusionآشفتگی (•مخفی باشد. یکی از روش های ایجاد آشفتگی، استفاده از جدول

) است.Substitutionجان�شینی (

: از بی�ن بردن� وابس�تگی مت�ن رم�ز شده ب�ه متن ) Diffusion(پراکندگ�ی •جدول از استفاده پراکندگ�ی، ایجاد از روش های یک�ی اص�لی.

می باشد.)Permutation(جایگشت

Page 17: Data Encryption Standard (DES)

17

هایی برگشت پ�ذیر هستند که نگاشت آنها، P-Box ها و S-Boxتنها •یک به ی�ک باشد.

ها، ن�ه تنها رابطه مستقیمی بین P-Box ها، بر خالف S-Boxدر •ورودی و خروجی وجود ندارد، بلکه ممکن است این راب�طه خطّی نیز

نباشد.

S-Boxیکی از روش های پر استفاده در ساخت جدول جستجو برای •ها ای�ن است که ورودی به دو قسمت تقسیم می شود. حالت� های

ممکن برای یک قسمت به عنوان اندیس سطر و حالت های ممکن برای قسمت دیگر، به عنوان اندیس ستون در نظر گرفته خواهد شد.

Page 18: Data Encryption Standard (DES)

18

آشنا شدیم، به DES در سیستم کلیدحال که با مفاهیم مربوط به ارائه یک مثال می پردازیم :

: انتخاب یک کلید مناسب با کمک مقادیر اسکی کاراکترها: 1گام 23Eyeکلمه منتخب بعنوان کلید :

2 3 E y e32 33 45 79 65

2 3 E y e32 33 45 79 65

Null00 00 00

Null00 00 00

یا

Page 19: Data Encryption Standard (DES)

19

معادل باینری کلید منتخب را در قالبی بفرم زیر قرار می دهیم : : 2گام

2 3 E y e32 33 45 79 65

Null00 00 00

بیتی هستند.7تذکر: کدهای اسکی، •

0 1 1 0 0 1 1

0 1 1 0 0 1 0

1 0 0 0 1 0 1

1 1 1 1 0 0 1

1 1 0 0 1 0 1

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

تذکر: همانطورکه گفتیم، مجموع بیت های هر بایت(هر سطر از جدول) •باید فرد باشد. بر این اساس بیت هشتم را انتخاب می کنیم.

0

1

0

0

1

1

1

164678AF2CB010101

Page 20: Data Encryption Standard (DES)

20

بیتی 64 بر روی کلید P-Boxیک عمل جایگشت توسط یک : 3گام اعمال می شود. با توجه به جدول جایگشت زیر اینکار انجام می شود :

Parity-bit drop table09 17 25 33 41 49 57

18 26 34 42 50 58 0127 35 43 51 59 02 10

36 44 52 60 03 11 1915 23 31 39 47 55 63

22 30 38 46 54 62 0729 37 45 53 61 06 14

04 12 20 28 05 13 21

Page 21: Data Encryption Standard (DES)

21

Parity-bit drop table09 17 25 33 41 49 57

18 26 34 42 50 58 0127 35 43 51 59 02 10

36 44 52 60 03 11 1915 23 31 39 47 55 63

22 30 38 46 54 62 0729 37 45 53 61 06 14

04 12 20 28 05 13 21

0 1 1 0 0 1 0 00 1 1 0 0 1 1 11 0 0 0 1 0 1 01 1 1 1 0 0 1 01 1 0 0 1 0 1 10 0 0 0 0 0 0 10 0 0 0 0 0 0 10 0 0 0 0 0 0 1

Parity drop 0

1

1

0 0 1 1 1 0

0 0 0 0 1 1 01 1 0 0 0 0 10 1 0 0 0 0

0 0 0 1 1 1 10 0 0 0 0 0 0

1 1 0 0 0 01 0 0 1 0 0 0

این توج@@ه در : بیت هایی مرحل��ه، بیت بع�نوان ک�ه را توازن اضافه کرده بودی�م، حذف شد و کلید تغییر نمی کند.

Page 22: Data Encryption Standard (DES)

22

بیتی تقسیم 28خروجی گام قبل را به دو قالب : 4گام می کنیم.

0 0 0 1 1 1 00 0 0 0 1 1 01 1 0 0 0 0 10 1 1 0 0 0 00 0 0 1 1 1 10 0 0 0 0 0 01 1 0 0 0 1 01 0 0 1 0 0 0

0 0 0 1 1 1 00 0 0 0 1 1 01 1 0 0 0 0 10 1 1 0 0 0 00 0 0 1 1 1 10 0 0 0 0 0 01 1 0 0 0 1 01 0 0 1 0 0 0

𝐿1

𝑅1

𝐿1𝑅1

Page 23: Data Encryption Standard (DES)

23

هر کدام از خروجی های مرحله قبل را یک واحد : 5گام به سمت چپ شیفت می دهیم :

0 0 0 1 1 1 00 0 0 0 1 1 01 1 0 0 0 0 10 1 1 0 0 0 0

0 0 0 1 1 1 10 0 0 0 0 0 01 1 0 0 0 1 01 0 0 1 0 0 0

ShiftingShift Round

One bit 1,2,9,16

Two bits Other

0 0 1 1 1 0 00 0 0 1 1 0 11 0 0 0 0 1 01 1 0 0 0 0 0

0 0 1 1 1 1 00 0 0 0 0 0 11 0 0 0 1 0 10 0 1 0 0 0 0

نتیجه

نتیجه

𝐿1

𝑅1

𝐿1𝑅1

Page 24: Data Encryption Standard (DES)

24

بر روی خروجی های مرحله P-Boxیک عمل جایگشت توسط یک : 6گام قبل اعمال می شود. با تو�جه به جدول جایگشت زیر اینکار انجام

می گردد :Key-compression table

14 17 11 24 1 5

3 28 15 6 21 1023 19 12 4 26 8

16 7 27 20 13 241 52 31 37 47 55

30 40 51 45 33 4844 49 39 56 34 53

46 42 50 36 29 32

Page 25: Data Encryption Standard (DES)

0 0 1 1 1 1 00 0 0 0 0 0 11 0 0 0 1 0 10 0 1 0 0 0 0

0 0 1 1 1 0 00 0 0 1 1 0 11 0 0 0 0 1 01 1 0 0 0 0 0

Key-compression table14 17 11 24 1 53 28 15 6 21 10

23 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32

25

compression

1

10

0 1 0 0 1

1 0 1 0 0 01 0 1 1 0 0

0 0 0 1 0 00 1 1 0 1 0

0 0 0 1 00 1 0 0 0

0 1 0 0 0 1

𝐿1

𝑅1

Page 26: Data Encryption Standard (DES)

26

بنابراین کلید فرع�ی در دور اول بصورت زیر خواهد بود :

1 0 1 0 0 1

1 0 1 0 0 01 0 1 1 0 0

0 0 0 1 0 00 1 1 0 1 0

0 0 0 0 1 00 1 0 0 1 0

0 1 0 0 0 1

8B 04 68 24 91A6

تبدیل می کنیم : Hexبرای کاه�ش حجم، بیت های مقابل را به کد

Page 27: Data Encryption Standard (DES)

27

با انجام عملیات� مشابه، کلیدهای فرعی بص�ورت زیر بدست خ�واهند آمد :

Round Number Sub Key

1 A6 8B 04 68 24 912 A2 35 03 A2 B0 313 69 06 45 23 0F 224 41 D0 98 1C 09 125 14 81 F2 45 40 546 B6 48 03 41 A0 C87 2B 23 04 A0 94 0D8 08 14 9D 0A 16 A69 49 44 C0 08 71 22

10 50 C9 B8 24 68 2411 94 A1 03 E0 08 D212 23 0E 07 85 82 1B13 69 30 84 17 16 4014 10 84 F8 18 81 6415 D4 40 32 00 EC 8416 14 EB 22 00 38 C9

Page 28: Data Encryption Standard (DES)

28

تشریح الگوریتم اصلی

، DESبرای آشنایی با نحوه رمزگذاری کار را با یک مثال پیش می بریم.

متن مورد نظر را برای رمز کردن، 1.انتخاب Scorpion واژه

می کنیم.برای رمز گذاریی از همان کلید 2.

23Eye.استفاده خواهیم

تمام کلیدهای فرعی مورد نیاز را توجه:، از روی مستقلقبالً طی یک الگوریم

بدست آوردیم. )23Eyeمنتخب ( کلید

1 2 . . . 64

1 2 . . . 321 2 . . . 32

𝐾 1𝑓

XOR

XOR

XOR

𝐾 2𝑓

𝐾 16𝑓

1 2 . . . 321 2 . . . 32

1 2 . . . 64

IP

FP

Page 29: Data Encryption Standard (DES)

29

بیتی :64: قرار دادن متن مورد نظر در قالب های 1گام برای اینکار از کد اسکی هر کاراکتر استفاده می کنیم.

: در اینجا از بیت توازن استفاده نمی شود.توجه•

Char S c o r p i o nHex

0 1 1 0 0 0 1 1

0 1 0 1 0 0 1 1

0 1 1 0 1 1 1 1

0 1 1 1 0 0 1 0

0 1 1 1 0 0 0 0

0 1 1 0 1 0 0 1

0 1 1 0 1 1 1 1

0 1 1 0 1 1 1 0

53 63 6F 72 70 69 6F 6E

Page 30: Data Encryption Standard (DES)

0 1 0 1 0 0 1 10 1 1 0 0 0 1 10 1 1 0 1 1 1 10 1 1 1 0 0 1 00 1 1 1 0 0 0 00 1 1 0 1 0 0 10 1 1 0 1 1 1 10 1 1 0 1 1 1 0

Initial Permutation58

50

42

34

26

18

10 2

60

52

44

36

28

20

12 4

62

54

46

38

30

22

14 6

64

56

48

40

32

24

16 8

57

49

41

33

25

17 9 1

59

51

43

35

27

19

11 3

61

53

45

37

29

21

13 5

63

55

47

39

31

23

15 7

30

IP1

01

1 1 1 1 1 1 1

0 0 0 1 1 0 0 11 1 0 0 0 1 0 0

0 1 1 0 0 1 1 10 0 0 0 0 0 0 01 1 1 1 1 1 01 1 1 0 0 1 01 1 0 0 1 1 1 1

جایگشت اولیه ورودی : 2گام

Page 31: Data Encryption Standard (DES)

31

بیتی تقسیم می کنیم.32خروجی گام قبل را به دو قالب : 3گام

1 1 1 1 1 1 1 10 0 0 1 1 0 0 11 1 0 0 0 1 0 00 1 1 0 0 1 1 10 0 0 0 0 0 0 01 1 1 1 1 1 1 01 1 1 0 0 1 0 01 1 0 0 1 1 1 1

1 1 1 1 1 1 1 10 0 0 1 1 0 0 11 1 0 0 0 1 0 00 1 1 0 0 1 1 10 0 0 0 0 0 0 01 1 1 1 1 1 1 01 1 1 0 0 1 0 01 1 0 0 1 1 1 1

𝐿1

𝑅1

𝐿1 𝑅1

1 2 . . . 64

1 2 . . . 321 2 . . . 32

1 2 . . . 321 2 . . . 32

1 2 . . . 64

IP

FP

𝐾 1𝑓

XOR

XOR

XOR

𝐾 2𝑓

𝐾 16𝑓

Page 32: Data Encryption Standard (DES)

32

با مشخص بودن کلیدها، عملکرد نهاییدور اول به صورت زیر خواهد بود:

𝐿1 𝑅1

𝐾 1𝑓𝑅2𝐿2

{ 𝐿𝑖+1=𝑅𝑖

𝑅𝑖+1=𝐿𝑖⊕ 𝑓 (𝑅𝑖 ,𝐾 𝑖 )

1 2 . . . 64

1 2 . . . 321 2 . . . 32

1 2 . . . 321 2 . . . 32

1 2 . . . 64

IP

FP

𝐾 1𝑓

XOR

XOR

XOR

𝐾 2𝑓

𝐾 16𝑓

Page 33: Data Encryption Standard (DES)

33

fبررسی تابع 1 2 . . . 32

1 2 . . . 48

Expansion

1 2 . . . 32

1 2 . . . 48

Straight P-Box

𝑆1 𝑆2 𝑆3 𝑆4 𝑆5 𝑆6 𝑆7 𝑆8

𝑅1

𝐾 1

𝑓 (𝑅𝑖 ,𝐾 𝑖 )

Page 34: Data Encryption Standard (DES)

0 0 0 0 0 0 0 01 1 1 1 1 1 1 01 1 1 0 0 1 0 01 1 0 0 1 1 1 1

Expansion32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 13

12 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1

34

0

11

1 0 0 0 0

0 0 0 0 0 10 1 1 1 1 1

1 1 1 1 0 10 1 1 1 0 00 0 0 0 1

0 1 1 0 00 1 1 1 1 0

اعمال جایگشت : 4گام گس�ترش دهنده بر روی

1 2 . . . 32

Expansion

1 2 . . . 48

𝑅1

𝑅1

Expansion

Page 35: Data Encryption Standard (DES)

35

𝐾 1

می کنیم : Sub key_1 ، XORخروجی مرحله قبل را با : 5گام

1 0 1 0 0 11 0 1 0 0 01 0 1 1 0 00 0 0 1 0 00 1 1 0 1 00 0 0 0 1 00 1 0 0 1 00 1 0 0 0 1

1 0 0 0 0 00 0 0 0 0 10 1 1 1 1 11 1 1 1 0 10 1 1 1 0 00 0 1 0 0 10 1 1 0 0 10 1 1 1 1 0

0 0 1 0 0 11 0 1 0 0 11 1 0 0 1 11 1 1 0 0 10 0 0 1 1 00 0 1 0 1 10 0 1 0 1 10 0 1 1 1 1

Page 36: Data Encryption Standard (DES)

36

𝑆1 𝑆2 𝑆3 𝑆4

بیت تبدیل 4مربوطه به S-Box بیت از خروجی مرحله قبل، توسط 6هر : 6گام 0می شود : 0 1 0 0 1

1 0 1 0 0 11 1 0 0 1 11 1 1 0 0 10 0 0 1 1 00 0 1 0 1 10 0 1 0 1 10 0 1 1 1 1

0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1

𝑆5 𝑆6 𝑆7 𝑆8

0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1

Page 37: Data Encryption Standard (DES)

37

روش کار در همهS-Box: ها بصورت زیر است

Page 38: Data Encryption Standard (DES)

38

جدولS-Box: ها بصورت زیر می باشد 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8

13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1

13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7

1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9

14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6

4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14

11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1

13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6

1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2

6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10

3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5

0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15

13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15

13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9

10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4

3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11

10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8

9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6

4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7

1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2

7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8

2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

𝑆1 𝑆2

𝑆3 𝑆4

𝑆5 𝑆6

𝑆7 𝑆8

Page 39: Data Encryption Standard (DES)

39

𝑆1 𝑆2 𝑆3 𝑆4

بنابراین خواهیم داشت :

𝑆5 𝑆6 𝑆7 𝑆8

1 1 1 00 0 1 1

1 1 1 11 1 0 0

0 0 0 11 1 0 0

1 0 0 10 1 0 0

1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0

0 0 0 1 1 1 0 0 1 0 0 1

0 1 0 0

0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1

0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1

Page 40: Data Encryption Standard (DES)

1 1 1 00 0 1 11 1 1 11 1 0 00 0 0 11 1 0 01 0 0 10 1 0 0

Straight 16 7 2

021

29

12

28

17

1 15

23

26 5 1

831

10

2 8 24

14

32

27 3 9

19

13

30 6 2

211 4 2

5

40

1

01

0 1 1 0 1 1 0

1 0 0 0 0 0 0 11 1 0 1 0 1 1

0 1 0 1 1 0 1

اعمال جایگشت : 7گام مستقیم، بر روی خروجی مرحله

قبل

Straight P-Box

fخروجی تابع

Page 41: Data Encryption Standard (DES)

41

XORرا با ، fخروجی : 8گام

𝐿1می کنیم :

𝑅2

1 1 1 1 1 1 1 10 0 0 1 1 0 0 11 1 0 0 0 1 0 00 1 1 0 0 1 1 1

0 1 1 1 0 1 1 01 0 0 0 0 0 0 11 1 0 1 0 0 1 10 1 1 0 1 1 0 1

1 0 0 0 1 0 0 11 0 0 1 1 0 0 00 0 0 1 0 1 1 10 0 0 0 1 0 1 0

Page 42: Data Encryption Standard (DES)

42

بنابراین خروجی دور اولبصورت زیر خواهد بود :

𝐿1 𝑅1

𝐾 1𝑓𝑅2𝐿2

1 0 0 0 1 0 0 11 0 0 1 1 0 0 00 0 0 1 0 1 1 10 0 0 0 1 0 1 0

0 0 0 0 0 0 0 01 1 1 1 1 1 1 01 1 1 0 0 1 0 01 1 0 0 1 1 1 1

𝑯𝒆𝒙 :8998170 𝐴𝑯𝒆𝒙 :00𝐹𝐸𝐸 4𝐶𝐹

Page 43: Data Encryption Standard (DES)

43

با انجام عملیات مشابه، خروجی هر دور بصورت زیر خواهد بود :

Round Number

Output

Left Right

1 00 FE E4 CF 89 98 17 0A2 89 98 17 0A 21 6A B2 F73 21 6A B2 F7 70 8A 7F 164 70 8A 7F 16 C9 5E 35 3C5 C9 5E 35 3C 7F FA 7F DB6 7F FA 7F DB 45 32 F5 FC7 45 32 F5 FC C1 87 B2 D78 C1 87 B2 D7 5C C5 B7 F89 5C C5 B7 F8 48 62 AE 8510 48 62 AE 85 49 A2 50 6D11 49 A2 50 6D BD F0 99 B212 BD F0 99 B2 20 23 75 6113 20 23 75 61 2C D7 A8 7614 2C D7 A8 76 17 0D 65 9C15 17 0D 65 9C 0A 43 32 8F16 BC 9E CB 55 0A 43 32 8F

1 2 . . . 64

1 2 . . . 321 2 . . . 32

1 2 . . . 321 2 . . . 32

1 2 . . . 64

IP

FP

𝐾 1𝑓

XOR

XOR

XOR

𝐾 2𝑓

𝐾 16𝑓

Page 44: Data Encryption Standard (DES)

1 0 1 1 1 1 0 01 0 0 1 1 1 1 01 1 0 0 1 0 1 10 1 0 1 0 1 0 1

Final Permutation40 8 4

816

56

24

64

32

39 7 4

715

55

23

63

31

38 6 4

614

54

22

62

30

37 5 4

513

53

21

61

29

36 4 4

412

52

20

60

28

35 3 4

311

51

19

59

27

34 2 4

210

50

18

58

26

33 1 4

1 9 49

17

57

25

0 0 0 0 1 0 1 00 1 0 0 0 0 1 10 0 1 1 0 0 1 01 0 0 0 1 1 1 1

44

FP

0

01

𝐿16

𝑅16

0 1 0 0 1 1 1

1 0 1 1 1 1 1 00 1 0 1 0 0 1 1

1 1 0 1 0 1 1 0

0 0 0 1 0 0 00 1 0 1 1 0 0 1

0 0 1 0 1 0 10 1 0 1 0 1 1 0

جایگشت نهایی : 9گام

متن رمز شده

Page 45: Data Encryption Standard (DES)

45

معرفی الگوریتم رمزگشایی DES :

برای رمزگشایی، از همان الگوریتم رمزگذاریی استفاده می کنیم با این وارد الگوریتم اصلی از انتها به ابتداتفاوت که کلیدهای فرعی را،

می کنیم. در 1 معادل کلید فرعی در رمزگذاریی16یعنی کلید فرعی مرحله

می باشد؛ و به همین ترتیب برای سایر مراحل.رمزگشایی

Page 46: Data Encryption Standard (DES)

46

تایی کلید 28همان طور که از شکل مشخص است، هر دو قالب بار به سمت چپ شیفت خورده اند. 27 ، 16اصلی تا مرحله

تایی به 28، قالب های 16بنابراین بعد از شیفت نهایی در مرحله حالت اول خود بر می گردند.

رمزگذارییتولید کلیدهای فرعی برای

ShiftingShift Round

One bit 1,2,9,16

Two bits Other

Page 47: Data Encryption Standard (DES)

47

بنابراین برای پیاده سازی الگوریتم تولید کلیدهای ، می توان به جای شیفت رمزگشاییفرعی برای استفاده کرد .شیفت به راست به چپ، از

باید دقت کرد که جدولShifting بصورت زیر تغییر خواهد کرد :

. در واقع شیفت مرحله اول حذف شده است

Shift RightShift Right

Shift RightShift Right

ShiftingShift Round

Zero bit 1One bit 2,9,16

Two bits Other

Page 48: Data Encryption Standard (DES)

48

ShiftingShift Round

One bit 1,2,9,16

Two bits Other

Shift RightShift Right

Shift RightShift Right

ShiftingShift Round

Zero bit 1One bit 2,9,16

Two bits Other رمزگشاییتولید کلیدهای فرعی برای رمزگذارییتولید کلیدهای فرعی برای

Page 49: Data Encryption Standard (DES)

49

: متن رمز شده را با انجام عملیاتی مشابه آنچه در مورد رمزنگاری انجام شد، رمز گشایی می کنیم

Round Number Sub Key

Output

Left Right

1 14EB220038C9 0A43328F 170D659C2 D4403200EC84 170D659C 2CD7A8763 1084F8188164 2CD7A876 202375614 693084171640 20237561 BDF099B25 230E0785821B BDF099B2 49A2506D6 94A103E008D2 49A2506D 4862AE857 50C9B8246824 4862AE85 5CC5B7F88 4944C0087122 5CC5B7F8 C187B2D79 08149D0A16A6 C187B2D7 4532F5FC10 2B2304A0940D 4532F5FC 7FFA7FDB11 B6480341A0C8 7FFA7FDB C95E353C12 1481F2454054 C95E353C 708A7F1613 41D0981C0912 708A7F16 216AB2F714 690645230F22 216AB2F7 8998170A15 A23503A2B031 8998170A 00FEE4CF16 A68B04682491 FF19C467 00FEE4CF

plaintext

53636F7270696F6E Scorpion

متن رمز شده

64678AF2CB010101(23Eyeکلید )

Page 50: Data Encryption Standard (DES)

50

DESآنالیز سیستم بودن آن کاملو اثر بهمنی در سیستم های قالبی،مطلوبدو ویژگی

است.

) :avalanche effectاثر بهمنی (1.

، دو پیام که فقط در DESبرای مشاهده اثر بهمنی در سیستم یک بیت با هم فرق دارند را با یک کلید رمز می کنیم:

Page 51: Data Encryption Standard (DES)

51

دو پیام که فقط در یک بیت با هم فرق دارند را با کلید یکسانی رمز می کنیم:

Plaintext Key Ciphertext

000000000000000022234512987ABB2

3

4789FD476E82A5F1

0000000000000001 0A4ED5C15A63FEA3

1 bit Number of bit differences 29 bits

) :Completeness effectاثر کامل بودن (2.

اثر کامل بودن، بدین معناست که هر بیت از پیام رمز شده به تعداد زیادی بیت از پیام اصلی وابسته است.

Page 52: Data Encryption Standard (DES)

52

برای سیستمDES : نقاط ضعفی نیز پیدا شده است)تعد�اد حاالت ممکن در برابر تکنولوژی امروزها ( P-Boxها و S-Boxضعف در 1.ضعف در کلید2. در کلمات و متمم آن ها قاعدهوجود 3.

چند کلید ضعیف در جدول زیر لیست شده اند :کلید؛ به همراه بیت های توازن

بیت)64(کلید؛ بعد از حذف بیت های توازن

بیت)56(0101 0101 0101 0101 0000000 0000000

1F1F 1F1F 0E0E 0E0E 0000000 FFFFFFF

E0E0 E0E0 F1F1 F1F1 FFFFFFF 0000000

FEFE FEFE FEFE FEFE FFFFFFF FFFFFFF

Page 53: Data Encryption Standard (DES)

53

برای پی بردن به قاعده متمم، به جدول زیر توجه کنید :

Complement OriginalEDCBEDCBEDCBED

CB 1234123412341234 key

EDCBA987543210ED

12345678ABCDEF12 Plaintext

1EED41E210385C98 E112BE1DEFC7A367 Ciphertext

Page 54: Data Encryption Standard (DES)

54

DESشکستنکنندگان منظور RSAتولی�د به ،

کلید� فضای اینک��ه دادن نشان در اس�تفاده ناکافی DESمورد

س�ال در تعیین 1997اس�ت، ب�ا جایزه ده هزار دالری ک�ه صورت

روز توسط 96داد، ظرف مدّت جستجوی DESCHALLگروه ب�ا

فضای حالت کلید� شکسته شد.

Justin, Matt, Guy

Page 55: Data Encryption Standard (DES)

55

در آ�ن از توس�ط 1998بع�د ، Distributed.net د�ر با 41 روز جستجوی فضای حالت کلید شکسته شد.

بع�د 6 افزاری مخص�وص EFF ماه ب�ا طراح�ی ی�ک س�یستم س�خت نام تح�ت کرک مدّت Deepcrackعملیات در شد موف�ق 22

دقیقه رمزشکنی را انجام دهد. 15ساعت و

ب�ا شکس�ته شدنDES در کمت�ر از ی�ک روز، دولت ایاالت متحده از ایمنی کافی برخورد�ار نیست.DESنهایتاً تصویب نمود که

س�ال تحقی�ق دربارۀ� 30پ�س از DES ،هنوز کارآم�د تری�ن حمله ،حمالت بررسی فض�ای حاالت کلید است.

Page 56: Data Encryption Standard (DES)

56

آلمان ساخته • ، ماشی�ن کوپوکوبان�ا ک�ه توس�ط در حال حاض�ر روز می 1.5 دالر قیم�ت دارد و در طول 10000ش�د و تنه�ا

تواند کلید را پیدا کند. را تنه�ا در حالت�ي ك�ه رمزگذاري س�ه تاي�ي استفاده DES امروزه•

) مي توان امن در نظر گرفت .3DESشود (

DES DESDES

𝐾 1 𝐾 2 𝐾 3

Plaintext

Ciphertext

Page 57: Data Encryption Standard (DES)

57

ي�ك گروه نيس�ت . اي�ن بدي�ن معني 3DESباي�د توج�ه كرد كه•اس�ت ك�ه براي دو كلي�د و در حال�ت كل�ي كلي�د سومي چون

وجود خاص�يت اگرنداردب�ا . DES آن در بود گروه ي�ك نمي آ�ن امني�ت افزاي�ش س�بب چندتاي�ي رمزگذاري ص�ورت

شد . وجود دارن�د ك�ه كليدهاي شانزده گانه در DESدقيقاً چهار كلي�د •

هري�ك از آن ه�ا يكس�ان هس�تند اي�ن كليده�ا را كليدهاي ضعيف DES . گويند

Page 58: Data Encryption Standard (DES)

58

منابع و مراجع1. Chapter 6, Data Encryption Standard , by Behrouz Forouzan 2. Data Encryption Standard, Mohammad.golyani3. Understanding Cryptography , by Christof Paar · Jan Pelzl

Page 59: Data Encryption Standard (DES)