modern block cipher

63
Information Safe Confidentiality Van Hoang Nguyen Mail: [email protected] Department of Computer Science Faculty of Information Technology Hanoi University of Agriculture. Modern cipher

Upload: hoang-nguyen

Post on 12-May-2015

3.900 views

Category:

Technology


3 download

DESCRIPTION

Modern cipher includes block cipher and stream cipher. This slide describe basic principles in building symmetric block ciphers.

TRANSCRIPT

Page 1: Modern block cipher

Information Safe

Confidentiality

Van Hoang Nguyen

Mail: [email protected]

Department of Computer Science

Faculty of Information Technology – Hanoi University of Agriculture.

Modern cipher

Page 2: Modern block cipher

Modern Ciphers

Block cipher?

Stream cipher?

Page 3: Modern block cipher

Modern Block cipher?

Page 4: Modern block cipher

Ý tưởng của block Ciphers

Mã hóa từng khối của plaintext một lần. Giả sử độ lớncủa mỗi khối là n bits, thì ứng với mỗi n bits đầu vàosẽ cho ra n bits mã hóa

PlainText

CipherText

Block Block BlockBlock

CBlock CBlockCBlockCBlock

Encrypt

Page 5: Modern block cipher

Ý tưởng của block Ciphers

Page 6: Modern block cipher

Block cipher

Monoalphabetic cipher?

=

Page 7: Modern block cipher

Block Ciphers ≈ Monoalphabetic cipherĐể chứng minh, trước hết ta giả sử mỗi khối có cỡ là nbits. Khi đó:

• Bảng chữ cái gốc chính là bảng chữ cái mà mỗi chữcái là một bộ n bits

• Quá trình mã hóa khối đơn giản có thể hiểu là thaythế n bits ban đầu bằng n bits mã hóa. Vậy nên nócũng như là việc thay thế chữ cái này bằng chữ cáikhác

• Như vậy phương thức mã hóa có thể được diễn đạtthông qua một bảng chữ cái mã hóa mà ở đó mỗi chữcái là một bộ n bits

Như vậy mã khối là “tương đương” với mã một bảng chữ cái!

Page 8: Modern block cipher

Block cipher có an toàn không?

Page 9: Modern block cipher

Năm 800!!!

Abu Yusuf Ya'qub ibn Is-haq ibn as-Sabbah ibn 'omran ibn Ismail al-Kindi

Page 10: Modern block cipher

Confusion và Diffusion• Hai thuật ngữ này được ClaudeShannon đề xuất vào năm 1949 trong ýtưởng về mạng thế và hoán vị(S-PNetwork)

• Confusion – Sự rối loạn là thuật ngữdùng để chỉ những kỹ thuật nhằm làm choquá trình tìm kiếm mối quan hệ thống kêgiữa khóa và bản mã trở nên “không thể”

• Diffusion – Sự khuyếch tán là thuậtngữ dùng để chỉ những kỹ thuật nhằm làmcho quá trình tìm kiếm mối quan hệ thốngkê giữa bản gốc và bản mã trở nên“không thể”

Claude Shannon

Page 11: Modern block cipher

Tính an toàn của block cipher

• Hàm mã hóa E phải là hàm có tính đảo ngượcđược, tức E là một “song ánh”

• Gọi n là cỡ của khối. Khi đó ta sẽ có 2n! cáchàm E khác nhau

- Với n nhỏ => dễ bị tấn công bởi phương pháp thống kê, và vét cạn(brute-force)

- Với n lớn ?

Không thể tìm ra mối liên hệ thống kê

Không thể thực hiện vét cạn vì số lượng hàm E tăng rất nhanh theo n

Page 12: Modern block cipher

Mã khối tổng quát

Page 13: Modern block cipher

Nhược điểm của mã khối tổng quát

Mã khối tổng quát rõ ràng là an toàn với n lớn.Nhưng n lớn chưa hẳn là khả thi với nhà lập mã:

• Vì để tạo ra hàm E tổng quát => Khóa đơn giảnchính là mô tả của hàm E

Chẳng hạn: Với n=64:

Để mô tả hàm E cần 64*264 bits ≈ 220 TB!!!

• Khi n lớn, mô tả của hàm E sẽ rất phức tạp

Page 14: Modern block cipher

n lớnAn toàn

Không khả thi

Page 15: Modern block cipher

ý tưởng của Horst FeistelÝ tưởng của Feistel là xấp xỉ ý tưởng mã khối. Cụthể là thay vì sử dụng mã khối tổng quát, ta chỉ sửdụng một tập con trong tập các hàm tổng quát(nhữnghàm có thể mô tả một cách đơn giản hơn)

• Hill cipher và các hàm tuyến tính là một ví dụ

nnnnnn

nnnnnn

nn

nn

kpkpkpc

kpkpkpc

kpkpkpc

kpkpkpc

...

...

.............................................

.............................................

...

...

2211

)1(2)1(21)1(11

22222112

11221111

Page 16: Modern block cipher

Hill cipherCác hàm tuyến tính

Dễ phá

Page 17: Modern block cipher

ý tưởng của Horst Feistel

• Horst Feistel đề nghị sử dụng mã tích thay vìcác hàm tuyến tính

• Ông đề nghị sử dụng luân phiên phép thế vàphép hoán vị

• Horst Feistel thực sự thành công trong việchiện thực hóa ý tưởng S-P Network của ClaudeShannon

Page 18: Modern block cipher

Feistel cipher structureĐược xây dựng dựa trên ý tưởng của Feistel.

• Một khối của plaitext(PB) sẽ chạy qua n vòng mã hóađể sinh ra một khối của ciphertext(CB)

• Đầu tiên PB được chia làm 2 phần ký hiệu là: R0,L0

• Khóa mã hóa K sẽ được sử dụng để sinh ra n khóacon(subkey): ki với 1≤i≤n

• Tại vòng mã hóa i:

- Input: Ri-1, Li-1(là kết quả của vòng thứ i-1)

- Output: Ri = F(Ri-1,ki) xor Li-1

Li = Ri-1

• CB=Rn||Ln.

Page 19: Modern block cipher

Feistel cipher structure

K1

Kn

Page 20: Modern block cipher

Feistel cipher structure

Nhận xét:

• Hàm thế được áp dụng trên nửa trái(F và phép xor)

• Các vòng có cùng một cấu trúc nhưng được khác biệthóa bởi khóa con ki

• Cuối cùng phép hoán vị được thực hiện bằng cách đảovị trí hai nửa

Cấu trúc của Feistel bản chất là việc thực hiện luân phiêncác chức năng confusion(rối loạn) và diffusion(khuyếch tán).Cấu trúc của Feistel là một cài đặt cụ thể cho ý tưởng củaClaude Shannon.

Page 21: Modern block cipher

Feistel decipher structure

Giống hệt với mã hóa nhưng thực hiện theo chiềungược lại:

• Ciphertext được sử dụng làm input

• Các khóa con ki được sử dụng theo trình tự ngượclại: kn,kn-1,…,k2,k1

Sự đối xứng trong cấu trúc mã hóa và giải mã chính là nét đẹp trong cấu trúc của Feistel cipher.

Page 22: Modern block cipher
Page 23: Modern block cipher

Nguyên tắc thiết kế mã khối Feistel

Một số yếu tố cần quan tâm khi thiết kế:

• Block size – Cỡ của khối

• Key size – Cỡ của khóa

Phần mềm mã hóa/giải mã phải “nhanh”

Cấu trúc phải “clear”

• Số lượng vòng(n)

• Thuật toán sinh khóa con

• Hàm F

Page 24: Modern block cipher

Data Encryption Standard(DES)

Page 25: Modern block cipher

• Vì sao phải chuẩn hóa việc mã hóa dữ liệu?

• Cấu trúc mã hóa và giải mã của chuẩn mã hóa dữ liệu DES?

• Tính an toàn của DES

Page 26: Modern block cipher

Vì sao phải chuẩn hóa việc mã hóa dữ

liệu?

Page 27: Modern block cipher

• Ngay trong thời kỳ đầu mã hóa, người ta đã thấy sựcần thiết phải thống nhất với nhau phương pháp mã hóa

• Điều này càng được thấy rõ hơn trong chiến tranhthế giới thứ II, khi mà những trao đổi thông tin bímật giữa các quốc gia trở nên phổ biến

• Những năm 1960, máy tính đã được sử dụng trongcác doanh nghiệp. Và mã hóa máy tính trở thànhphương tiện cho trao đổi thông tin bí mật

• Ngày 15/5/1973, Cục tiêu chuẩn quốc gia HoaKỳ(NBS) lên kế hoạch chuẩn hóa việc mã hóa dữ liệu

Page 28: Modern block cipher

Cấu trúc của DES?

Page 29: Modern block cipher

Data Encryption Standard• Năm 1977, NBS đưa ra chuẩn mã hóa dữ liệu –DES(FIPS PUB 46)

• DES lập tức trở nên phổ biến trong công việc mã hóa

• DES là một mã khối với:

- Block size : 64 bits

- Key size : 56 bits

• DES được dựa trên dự án Tuchman-Meyer – một phiênbản cải tiến của Lucifer cho mục đích thương mại

Page 30: Modern block cipher

Những tranh luận về thiết kế của DES

DES được đưa ra tranh luận vì DES là một chuẩncông khai. Có 2 khía cạnh là:

• Key size: theo đánh giá 56 bits là hơi nhỏ

• Chi tiết thiết kế của S-Box

Mặc cho những bàn cãi khác nhau về tính an toàn của DES. DES vẫn được sử dụng một cách rộng rãi!

Page 31: Modern block cipher

DES Encryption• DES có cấu trúc tươngtự như cấu trúc củaFeistel nếu bỏ đi hàm IPvà IP-1 ở đầu và cuối.

IP

Round 1

Round 16

Swap

IP-1

64 bits

64 bits

Page 32: Modern block cipher

Initial permution(IP)

• IP là bước đầu tiên trong cấu trúc của DES

• Bản chất của hàm IP là tạo ra một hoán vị của input

• Hàm hoán vị được định nghĩa theo cấu trúc bảng

• Với một bảng mô tả hàm IP sẽ có bảng tương ứng môtả cho hàm IP-1

Page 33: Modern block cipher

Initial permution(IP)Bảng 8x8 sẽ mô tả hàm IP với input có chiều dài64 bits.

58 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

Page 34: Modern block cipher

IP-1

Bảng 8x8 sẽ mô tả hàm IP-1 với input có chiềudài 64 bits.

40 8 48 16 56 24 64 32

39 7 47 15 55 23 63 31

38 6 46 14 54 22 62 30

37 5 45 13 53 21 61 29

36 4 44 12 52 20 60 28

35 3 43 11 51 19 59 27

34 2 42 10 50 18 58 26

33 1 41 9 49 17 57 25

Page 35: Modern block cipher

Cấu tạo một vòng DES

• Đầu tiên input được chia làm 2 nửa ký hiệu là L và R.

• Output là một chuỗi 64 bits, được xây dựng từ 2 nửa:output=L’||R’. Trong đó:

- L’=R

- R’=L xor F(R,K)

• Input là một chuỗi 64 bits.

Page 36: Modern block cipher

Cấu tạo một vòng DES

Hàm F được mô tả trong DES như sau:• Input là một chuỗi 32 bits(là nửa phảitrong input của vòng).

• Input đầu tiên được chạy qua hàm E(Expansion/permuation) để thực hiện hoánđổi và bổ xung thêm 16 bits. Kết quả trảra chuỗi 48 bits.

• Chuỗi 48 bits thu được đem xor với khóak.

• Tiếp đến chạy qua hàm S-box để thựchiện phép thế và chọn. Kết quả trả ra chuỗi32 bits.

• Cuối cùng chạy qua một hàm hoán vị P đểtrả ra 32 bits output.

32 bits

Expansion/permutation

Substitution/choice

Permutation

32 bits

48 bits

32 bits

xorki

Page 37: Modern block cipher

Cấu tạo một vòng DESHàm E(Expansion/permutation):

Hàm E được mô tả bằng một bảng hoán vị, có sự mở

rộng bằng cách lặp 16 bits.

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 1

Page 38: Modern block cipher

Cấu tạo một vòng DESCấu tạo của S-box:

• Hàm F chứa 8 S-box.

• Input cho mỗi S-box là một chuỗi 6 bits.

• Output cho mỗi S-box là một chuỗi 4 bits.

• S-box được định nghĩa dưới dạng bảng, có cấu trúc như sau:

• Phương thức hoạt động của 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

- Hai bits: đầu và cuối: chỉ số dòng.

- Bốn bits giữa: chỉ số cột.

Page 39: Modern block cipher

Cấu tạo một vòng DESCấu tạo P(Permutation):

Cấu tạo hàm Swap:

• Hàm Swap hoán đổi vị trí hai nửa của chuỗibits input.

16 7 20 21 29 12 28 17

1 15 23 26 5 18 31 10

2 8 24 14 32 27 3 9

19 13 30 6 22 11 4 25

Page 40: Modern block cipher

Key generation• Đầu tiên khóa K được chạyqua hàm PC1 để lấy 56 bits.

• Kết quả được chia làm hainữa. Mỗi nửa được đưa quahàm left shift.

• Tiếp đến 2 nửa sẽ làm inputcho hàm PC2 để tính ra k1.

• Đồng thời 2 nửa cũng đượclưu lại để tính khóa cho vòngtiếp theo.

K(64 bits)

PC1

C0 D0

Left shift Left shift

Permutation/Contraction(PC2)

C1 D1

Page 41: Modern block cipher

Key generation

Hàm PC1:

57 49 41 33 25 17 9

1 58 50 42 34 26 18

10 2 59 51 43 35 27

19 11 3 60 52 44 36

63 55 47 39 31 23 15

7 62 54 46 38 30 22

14 6 61 53 45 37 29

21 13 5 28 20 12 4

Page 42: Modern block cipher

Key generationHàm PC2:

14 17 11 24 1 5 3 28

15 6 21 10 23 19 12 4

26 8 16 7 27 20 13 2

41 52 31 37 47 55 30 40

51 45 33 48 44 49 39 56

34 53 46 42 50 36 29 32

Hàm Left shift:Round number 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Bits rotated 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Page 43: Modern block cipher

DES Decryption

• Giải mã đơn giản là áp dụng thuật toán mãnhưng với các khóa được sử dụng theo chiềungược lại(k16->k1).

• DES gần giống như việc giữ thư bí mật bằngcách bỏ thư vào hòm và khóa lại. Sau đó hòmthư thu được lại bỏ vào hòm lớn hơn và khóalại, cứ như vậy cho đủ 16 hòm thì thu đượcDES.

Page 44: Modern block cipher

Tính an toàn của DES?

Page 45: Modern block cipher

Hiệu ứng tuyết lởAvalanche Effect

• Là một tính chất mong muốn của các mậtmã.

• Nếu thay đổi một bít ở đầu vào hoặc khóathì đầu ra sẽ thay đổi trên nhiều bits(1/2).

• DES thể hiện rất tốt tính chất này.

Page 46: Modern block cipher

Key size

• Với khóa cỡ 56 bits, ta có 256≈7.2x1016

khóa tiềm năng.

• DES có thể bị tấn công vét cạn:

- Năm 1997, một mạng các máy tính.

- Năm 1998, EEF và DES cracker.

- Năm 1999, sử dụng kết hợp các biện pháp.

Page 47: Modern block cipher

Cryptanalysis

• Có nhiều nghiên cứu thám mã trênDES.

• Lợi dụng điểm yếu trong thiết kế củaDES(S-box).

Page 48: Modern block cipher

Cryptanalysis

• Sử dụng kết quả thống kê => cần mộtlượng thông tin lớn.

• Một số hình thức chính:

- Thám mã sai phân-Differential cryptanalysis.

- Thám mã tuyến tính-Linear cryptanalysis.

- Tấn công khóa liên kết–related key attack.

Page 49: Modern block cipher

Timing Attack

• Dựa trên cơ sở là: việc mã và giải mãcần một lượng thời gian khác nhau vớinhững input khác nhau

• DES là hoàn hảo để đối phó với hìnhthức tấn công này

Page 50: Modern block cipher

Differential cryptanalysis

• Là một trong những thành tựu của thám mãmới được công bố gần đây

• Tuy nhiên NSA đã nhận thấy vấn đề này từnhững năm 1970

• Được công bố năm 1990 bởi Murphy, Birhamvà Shamir

• Là một phương pháp mạnh để tấn công các mãkhối

Page 51: Modern block cipher

Differential cryptanalysis

• DES có thể kháng cự được với hình thức tấncông này

• Việc sử dụng S-box và các hàm hoán vị(P) làmcho DES mạnh hơn Lucifer trong việc đối phóvới thám mã sai phân

Page 52: Modern block cipher

DES

Thực sự là không an toàn

Page 53: Modern block cipher

Triple DES

Có tốc độ chậm!

Page 54: Modern block cipher

Năm 1997

NIST kêu gọi tìm kiếm mã mới

Page 55: Modern block cipher

Advanced Encryption Standard

• Block size: “128 bits”

• Key size: 128 bits

add round key

128 bits

Substitue bytes

Shift rows

Mix columns

add round key

Round

1

Substitue bytes

Shift rows

Mix columns

add round key

Round

9

Substitue bytes

Shift rows

add round key

Round

10

128 bits

expand key

key

W[0,3]

W[4,7]

W[36,39]

W[40,43]

Page 56: Modern block cipher

AES Round’s structure

Page 57: Modern block cipher

Add Round key

• XOR trạng thái với 128 bits khóa

• Xử lý theo từng cột

• Dễ tìm hàm ngược

• Thiết kế đơn giản nhất có thể:

– Dạng mã Vernam với khóa mở rộng

– Bổ xung một số bước nhằm tăng độ phức tạp/tính an toàn

Page 58: Modern block cipher

Substitute bytes

• Là một phép thế các bytes đơn giản

• Sử dụng cách cài đặt dạng bảng(S-box)

Page 59: Modern block cipher

Shift Row

• Dịch bits trên mỗi dòng

– Dòng 1: không đổi

– Dòng 2: dịch sang trái 1 byte

– Dòng 3: dịch sang trái 2 bytes

– Dòng 4: dịch sang trái 3 bytes

Page 60: Modern block cipher

Shift Row

• Hàm ngược, đơn giản là dịch sang phải

• Add round key thực hiện theo cột, do đóbước này thực hiện theo dòng nhằm hoán vịcác bytes trong các cột

Page 61: Modern block cipher

Mix Column

Page 62: Modern block cipher

Key Expansion• Mở rộng khóa(128 bits) thành mảng gồm 44/52/60từ 32 bits

• Copy khóa vào 4 từ đầu tiên của mảng

• Các nhóm 4 từ tiếp theo, mỗi từ được xây dựng dựatrên từ đứng trước nó(wi-1) và từ cả nhóm trước có vịtrí tương ứng với nó(wi-4), theo công thức sau:

wi =xor(g(wi-1),wi-4) nếu wi là từ đầu tiên trong nhóm

xor(wi-1,wi-4)

• Hàm g thực hiện liên tiếp các phép: dịch trái, S-box, cuối cùng là xor với một hằng số

Page 63: Modern block cipher

Key Expansion