1. Trang chủ
  2. » Công Nghệ Thông Tin

Chương4: Modes of Operation docx

96 708 15

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 96
Dung lượng 1,35 MB

Nội dung

 Hàm môôt chiều one-way functions: Hàm f: X → Y đựơc gọi là hàm một chiều nếu tính y=fx với mọi x ∈ X là dễ nhưng việc tìm x khi biết y lại là vấn đề khó. Viêôc nhân hai số nguyên tố l

Trang 1

Modes of Operation

Trang 2

Nội dung

Các kiểu thao tác (Modes of Operation)

Các kiểu chèn bổ sung thông tin (Padding Scheme)

Trang 3

Trong mã hóa, thường dữ liệu được chia thành từng đoạn (block) có kích thước cố định (ví dụ như 64 hay 128

bit)

Để mã hóa các thông điệp dài (có thể chia thành nhiều block), có thể sử dụng các kiểu thao tác khác nhau

(modes of operation) khác nhau

Các kiểu thao tác (Modes of

Operation)

Trang 4

Các kiểu thao tác đầu tiên được đề nghị (ECB, CBC, OFB, CFB) đảm bảo tính bí mật (confidentiality), không

giúp đảm bảo tính toàn vẹn thông tin (message integrity)

Các kiểu thao tác được thiết kế cho phép (CCM, EAX và OCB) vừa đảm bảo tính bí mật, vừa đảm bảo xác định

tính toàn vẹn thông tin.

Một số kiểu thao tác được xây dựng để mã hóa sector trên đĩa:

 Tweakable narrow-block encryption –LRW

 Wide-block encryption -CMC và EME

Các kiểu thao tác (Modes of

Operation)

Trang 5

Kiểu mã hóa đơn giản nhất là electronic codebook (ECB)

Thông điệp cần mã hóa được chia thành từng đoạn, mỗi đoạn được mã hóa độc lập nhau

Hạn chế: các khối có cùng nội dung, sau khi mã hoá xong cũng tạo thành các khối kết quả giống hệt nhau

Không che giấu được các “mẫu” dữ liệu (data pattern)

Không khuyến khích sử dụng ECB trong các giao thức mã hóa

Electronic codebook (ECB)

Trang 8

Ảnh gốc theo kiểu Mã hóa ECB theo các kiểu khác Mã hóa

ECB có thể làm cho giao thức kém an toàn để bảo vệ tính toàn vẹn thông tin (ví dụ như đối với kiểu tấn công

thông tin (ví dụ như đối với kiểu tấn công replay attacks replay attacks )

Electronic codebook (ECB)

Trang 9

Trong kiểu mã hóa cipher-block chaining (CBC):

 Mỗi khối plaintext được XOR với khối ciphertext trước khi được

Trang 10

C 0 = IV

C i = E = E K (P ( P iC i – 1 )

Cipher-block chaining (CBC)

Trang 11

C 0 = IV

P i = D = D K (C ( C i ) C i – 1

Cipher-block chaining (CBC)

Trang 12

CBC là kiểu mã hóa thường được sử dụng nhất

Hạn chế: xử lý tuần tự, không thể song song hóa

 có thể chọn giải pháp counter mode để xử lý song song

Cipher-block chaining (CBC)

Trang 13

Bản chất:

 Plaintext KHÔNG được mã hóa bằng chính thuật toán đang xét

 Plaintext được mã hóa bằng cách XOR với một chuỗi được tạo ra bằng thuật toán mã hóa.

 Biến Block Cipher thành stream cipher

Cipher feedback (CFB)

Trang 14

C 0 = IV

C i = P = P i E E K ( C i – 1 )

Cipher feedback (CFB)

Trang 16

Bản chất:

 Plaintext KHÔNG được mã hóa bằng chính thuật toán đang xét

 Plaintext được mã hóa bằng cách XOR với một chuỗi được tạo ra bằng thuật toán mã hóa.

 Biến Block Cipher thành stream cipher

Output feedback (OFB)

Trang 19

Kiểu CTR còn gọi là Segmented Integer Counter (SIC)

Tương tự OFB, kiểu Counter cũng biến block cipher thành stream cipher

 Tạo ra block keystream tiếp theo bằng cách mã hóa giá trị kế tiếp của "counter"

Counter có thể là bất kỳ hàm nào sinh ra dãy số không có giá trị lặp lại sau một khoảng thời gian đủ lâu

Counter (CTR)

Trang 20

CTR có tính chất giống OFC,

CTR cho phép giải mã “ngẫu nhiên” bất kỳ khối cipherytext nào

Lưu ý: vai trò của đoạn dữ liệu nonce giống như initialization vector (IV)

IV/nonce và giá trị counter có thể được nối với nhau, cộng hay XOR để tạo thành 1 dãy bit đặc trưng duy nhất

ứng với mỗi giá trị counter cụ thể

Counter (CTR)

Trang 23

Initialization vector (IV)

Tất cả các kiểu mã hóa (ngoại trừ ECB) đều sử dụng vector khởi tạo (initialization vector - IV).

Trang 24

Với CBC và CFB, sử dụng lại giá trị IV làm rò rỉ thông tin

Với OFB và CTR, sử dụng lại IV làm phá vỡ hoàn toàn tính an toàn của hệ thống

IV trong CFB phải được phát sinh ngẫu nhiên và giữ bí mật cho đến khi nội dung của khối plaintext đầu tiên

được sẵn sàng để mã hóa

Counter (CTR)

Trang 25

Chương 5: Hệ mã công

khai và RSA

Trang 26

Số nguyên tố : Số nguyên tố là môôt số lớn hơn 1, nhưng chỉ chia hết cho 1 và chính nó, ngoài ra không còn

số nào nó có thể chia hết nữa

Hai số a và n được gọi là hai số nguyên tố cùng nhau nếu chúng không có thừa số chung nào khác 1, hay

nói môôt cách khác, nếu ước số chung lớn nhất của a và n là bằng 1 Chúng ta có thể viết như sau :

GCD(a,n)=1, (GCD-Greatest Common Divisor)

Lý thuyết toán học

Trang 27

 Hàm môôt chiều (one-way functions): Hàm f: X → Y đựơc gọi là hàm một chiều nếu tính y=f(x) với mọi x ∈ X là dễ nhưng việc tìm x khi biết y lại là vấn đề khó.

 Viêôc nhân hai số nguyên tố là môôt ví dụ về hàm môôt chiều , nhân các số nguyên tố lớn để tạo thành môôt hợp số là dễ , nhưng công viêôc ngược lại phân tích môôt số nguyên lớn thành dạng thừa số nguyên tố lại là môôt bài toán khó (chưa có môôt thuâôt toán tốt)

Lý thuyết toán học

Trang 28

Hàm Phi Ơle (Euler)

Định nghĩa: Hàm Phi ơle của số nguyên dương n là số các số nguyên tố cùng nhau với n nhỏ hơn n Kí hiệu Ф(n).

Ví dụ: n=10

• Tập đầy đủ các phần dư là {0,1,2,3,4,5,6,7,8,9}

• Tập rút gọn các phần dư nguyên tố với 10 là {1,3,7,9}

• Số các phần tử của tập rút gọn trên là giá trị của hàm Ơle Ф(n) Như vậy, Ф(10) = 4

Trang 29

Tính chất của hàm Phi ơle:

• Nếu n là số nguyên tố thì Ф (n) = n-1 Ví dụ: Ф (7)=6

• Nếu p, q là 2 số nguyên tố cùng nhau thì:

Ф (p*q)=Ф (p-1)*Ф (q-1)

ví dụ Ф(26)= Ф(2*13)= Ф(2)* Ф(13)=1*12=12

• Nếu p là số nguyên tố thi: Ф(pn) = pn-pn-1

Hàm Phi Ơle (Euler)

Trang 31

Thuật toán Ơcơlit tìm ước chung lớn nhất GCD(a, b)

Trang 33

03/29/14 An toàn và bảo mật thông tin

Trang 34

03/29/14 An toàn và bảo mật thông tin

Trang 35

Thuâôt toán Ơclit mở rộng

Bổ đề:

Cho 2 số nguyên: r 0 , r 1 , tồn tại 2 số nguyên khác s và t sao cho : s.r 0 + t.r 1 =gcd(r 0 ,r 1 )=1 Khi đó t=r 1 -1 Theo mod r 0

Trang 36

03/29/14 An toàn và bảo mật thông tin

36

Thuật toán : Cho 2 số nguyên r0 , r1 tìm r1 -1 theo mod r0

Trang 37

03/29/14 An toàn và bảo mật thông tin

37

S i = s (i-2) – q (i-1) * s (i-1) t i = t (i-2) – q (i-1) * t (i-1)

Thuâôt toán Ơclit mở rộng

Trong đó ta có: Với i=0,1,2,3…

r i =q i+1 *r i+1 +r i+2

Trang 38

03/29/14 An toàn và bảo mật thông tin

Ví dụ : Cho r0=29, r1=8 tìm 8 -1 theo mod 29

s.r0 + t.r1 =gcd(r0,r1) S0 =1 T0 = 0

S1 = 0 T1 = 1

Si = s(i-2) – q(i-1) * s(i-1) ti = t(i-2) – q(i-1) * t(i-1) ; i=2,3,4…

Rõ ràng : 29*(-3) + 8*11 = 1 s=3, t=11

Thuâôt toán Ơclit mở rộng

Bước ri qi+1 ri+1 ri+2 si ti

Trang 39

Giới thiệu Hệ mã công khai và

Để bảo mật khóa K, A và B phải trao đổi với nhau trên một kênh liên lạc thật sự an toàn và bí mật

Tuy nhiên, rất khó có thể bảo đảm được sự an toàn của kênh liên lạc nên mã khóa K vẫn có thể bị phát hiện

bởi người C!

Trang 40

Ý tưởng về hệ mã công khai được Martin Hellman, Ralph Merkle và Whitfield Diffie tại Đại học Stanford

giới thiệu vào năm 1976

Sau đó, phương pháp Diffie-Hellman của Martin Hellman và Whitfield Diffie đã được công bố

Năm 1977, trên báo "The Scientific American", nhóm tác giả Ronald Rivest, Adi Shamir và Leonard

Adleman đã công bố phương pháp RSA, phương pháp mã hóa khóa công cộng nổi tiếng và được sử dụng rất nhiều hiện nay trong các ứng dụng mã hóa và bảo vệ thông tin

Giới thiệu Hệ mã công khai và

RSA

Trang 41

Một hệ mã công khai sử dụng hai loại khóa:

 khóa công khai (public key) được công bố rộng rãi và được

sử dụng trong việc mã hóa,

 khóa riêng (private key) chỉ do một người nắm giữ và được

sử dụng để giải mã thông tin đã được mã hóa bằng khóa công khai

Các phương pháp mã hóa này khai thác những ánh xạ f mà việc thực hiện ánh xạ ngược f –1 rất khó so

với việc thực hiện ánh xạ f Chỉ khi biết được khóa riêng K thì mới có thể thực hiện được ánh xạ ngược f –1

Giới thiệu Hệ mã công khai và

RSA

Trang 42

Phương pháp RSA

Năm 1978, R.L.Rivest, A.Shamir và L.Adleman đã đề xuất hệ mã công khai RSA

Trong phương pháp này, tất cả các phép tính đều được thực hiện trên Zn với n là tích của hai số nguyên

tố lẻ p và và q khác nhau

Khi đó, ta có φ(n) = (p–1) (q–1)

Trang 43

1) Chọn ngẫu nhiên 2 số nguyên tố lớn p và q

2) Tính số làm modulo của hệ thống: n = p.q

 Ta đã biết Ф(n)=(p-1)(q-1)

3) Chọn ngẫu nhiên khoá mã hóa b

 Trong đó 1<b< Ф(n), gcd(b,Ф(n))=1

4) Giải phương trình sau để tìm khoá giải mã a sao cho

a = b–1 mod Ф(n) (bằng thuật toán Euclide mở rộng)

 b.a=1 mod Ф(n) với 0≤a≤ Ф(n)

5) Khoá mã công khai Kpub={b,n}

6) Giữ khoá riêng bí mật Kpr={a,p,q}

Phương pháp RSA

Phát sinh khóa

Trang 44

Hàm mã hóa: Sử dụng khóa riêng Kpub pub

Hàm gải mã:sử dụng khóa Kpr

Phương pháp RSA

Trang 45

Ví dụ : Alice sẽ gửi một bản rõ (x=4) tới Bob sau khi Bob gửi cho cô khóa công khai

Phương pháp RSA

Trang 46

Một số phương pháp tấn công

RSA

Tính chất an toàn của phương pháp RSA dựa trên cơ sở chi phí cho việc giải mã sẽ quá lớn nên xem như

không thể thực hiện được

Vì khóa là công khai nên việc tấn công bẻ khóa phương pháp RSA thường dựa vào khóa công khai để xác

định được khóa riêng tương ứng Điều quan trọng là dựa vào n để tính p, q của n, từ đó tính được a.

Trang 47

Phương pháp sử dụng φ (n)

Giả sử người tấn công biết được giá trị φ(n) Khi đó việc xác định giá trị p, q được đưa về việc giải hai

phương trình sau n = pq

Thay q = n/p, ta được phương trình bậc hai

p, q chính là hai nghiệm của phương trình bậc hai này Tuy nhiên vấn đề phát hiện được giá trị φ(n) còn khó

hơn việc xác định hai thừa số nguyên tố của n

Trang 48

Thuật toán phân tích ra thừa

Trang 49

Thuật toán Pollard p-1 (1974) là một trong những thuật toán đơn giản hiệu quả dùng để phân tích ra thừa số

nguyên tố các số nguyên lớn Tham số đầu vào của thuật toán là số nguyên (lẻ) n cần được phân tích ra thừa

số nguyên tố và giá trị giới hạn B

Giả sử n = p.q (p, q chưa biết) và B là một số nguyên đủ lớn, với mỗi thừa số nguyên tố k,

k B

Thuật toán phân tích ra thừa số

p-1

Trang 50

Ở cuối vòng lặp (bước 2), ta có

a 2B! (mod n)

Suy ra: a 2B! (mod p)

Do p|n nên theo định lý Fermat, ta có :

Trang 51

Ví dụ:

Giả sử n = 15770708441

Áp dụng thuật toán p – 1 với B = 180, chúng ta xác định được a

= 11620221425 ở bước 3 của thuật toán và xác định được giá trị

Do đó, khi chọn B ≥ 173 sẽ đảm bảo điều kiện 135978  B!

Thuật toán phân tích ra thừa

số p-1

Trang 52

Trong thuật toán p 1 có B 1 phép tính lũy thừa modulo, mỗi phép đòi hỏi tối đa 2log2B phép nhân modulo

sử dụng thuật toán bình phương và nhân

Việc tính USCLN sử dụng thuật toán Euclide có độ phức tạp O((log n) 3 )

Như vậy, độ phức tạp của thuật toán là:

O(B log B(log n) 2 + (log n) 3 )

Thuật toán phân tích ra thừa

số p-1

Trang 53

Xác suất chọn giá trị B tương đối nhỏ và thỏa điều kiện là rất thấp

Khi tăng giá trị B (chẳng hạn như ) thì giải thuật sẽ thành công, nhưng thuật toán này sẽ không

nhanh hơn giải thuật chia dần như trình bày trên.

n

Thuật toán phân tích ra thừa

số p-1

Trang 54

Giải thuật này chỉ hiệu quả khi tấn công phương pháp RSA trong trường hợp n có thừa số nguyên tố p

(p 1) chỉ có các ước số nguyên tố rất nhỏ

Chúng ta có thể dễ dàng xây dựng một hệ thống mã hóa khóa công cộng RSA an toàn đối với giải thuật tấn

công p 1 Cách đơn giản nhất là tìm một số nguyên tố p1 lớn, mà p = 2p1 + 1 cũng là số nguyên tố, tương

tự tìm q1 nguyên tố lớn và q = 2q1 + 1 nguyên tố.

Thuật toán phân tích ra thừa

số p-1

Trang 55

Bẻ khóa dựa trên các tấn

công lặp lại

Simons và Norris: hệ thống RSA có thể bị tổn thương khi sử dụng tấn công lặp liên tiếp Nếu đối thủ biết cặp

khóa công cộng {n, b} và từ khóa C thì có thể tính chuỗi các từ khóa sau:

Trang 56

Ví dụ: Giả sử anh ta biết {n, b, C}={35, 17, 3},anh ta sẽ tính:

Trang 57

Sự che dấu thông tin trong hệ

thống RSA

Hệ thống RSA có đặc điểm là thông tin không phải luôn được che dấu

Giả sử người gởi có e = 17, n = 35 Nếu anh ta muốn gởi bất cứ dữ liệu nào thuộc tập sau

{1, 6, 7, 8, 13, 14, 15, 20, 21, 22, 27, 28, 29, 34}

thì kết quả của việc mã hóa lại chính là dữ liệu ban đầu Nghĩa là, M = M e mod n

Còn khi p = 109, q = 97, e = 865 thì hệ thống hoàn toàn không có sự che dấu thông tin, bởi vì:

M, M = M865 mod (109*97)

Trang 58

Với mỗi giá trị n, có ít nhất 9 trường hợp kết quả mã hóa chính là dữ liệu nguồn ban đầu Thật vậy,

M = M e mod n hay:

M = M e mod pM = M e mod q (*)

Với mỗi e, mỗi đẳng thức trong (*) có ít nhất ba giải pháp thuộc tập {0, 1, -1}

Số thông điệp không được che dấu (không bị thay đổi sau khi mã hóa):

m = [1+gcd(e-1, p-1)][1+gcd(e-1), q-1]

Sự che dấu thông tin trong hệ

thống RSA

Trang 59

Nhận xét

Mấu chốt để có thể giải mã được thông tin là có được giá trị pq tạo nên giá trị n

Khi có được hai giá trị này, ta có thể dễ dàng tính ra được φ(n) = (p – 1)(q – 1) và giá trị a = b–1 mod φ(n) theo

thuật toán Euclide mở rộng

Nếu số nguyên n có thể được phân tích ra thừa số nguyên tố, tức là giá trị pq có thể được xác định thì

xem như tính an toàn của phương pháp RSA không còn được bảo đảm nữa

Trang 60

Như vậy, tính an toàn của phương pháp RSA dựa trên cơ sở các máy tính tại thời điểm hiện tại chưa đủ khả

năng giải quyết việc phân tích các số nguyên rất lớn ra thừa số nguyên tố

Năm 1994, Peter Shor, một nhà khoa học tại phòng thí nghiệm AT&T, đã đưa ra một thuật toán có thể phân

tích một cách hiệu quả các số nguyên rất lớn trên máy tính lượng tử

Nhận xét

Trang 61

Vấn đề số nguyên tố

Để bảo đảm an toàn cho hệ thống mã hóa RSA, số nguyên n = pq phải đủ lớn để không thể dễ dàng tiến hành

việc phân tích n ra thừa số nguyên tố

Hiện tại, các thuật toán phân tích thừa số nguyên tố đã có thể giải quyết được các số nguyên có trên 130 chữ

số (thập phân)

Để an toàn, số nguyên tố pq cần phải đủ lớn, ví dụ như trên 100 chữ số

Vấn đề đặt ra ở đây là giải quyết bài toán: làm thế nào để kiểm tra một cách nhanh chóng và chính xác một số

nguyên dương n là số nguyên tố hay hợp số?

Trang 62

Theo định nghĩa, một số nguyên dương n là số nguyên tố khi và chỉ khi n chỉ chia hết cho 1 và n (ở đây chỉ

Trang 63

Việc kiểm tra một số nguyên dương n là số nguyên tố theo phương pháp trên sẽ đưa ra kết quả hoàn toàn

chính xác

Tuy nhiên, thời gian xử lý của thuật toán rõ ràng là rất lớn, hoặc thậm chí không thể thực hiện được, trong

trường hợp n tương đối lớn

Vấn đề số nguyên tố

Trang 64

Thuật toán Miller-Rabin

Trên thực tế, việc kiểm tra một số nguyên dương n là số nguyên tố thường áp dụng các phương pháp thuộc

nhóm thuật toán Monte Carlo,

ví dụ:

 thuật toán Solovay-Strassen hay thuật toán Miller-Robin;

 thuật toán Miller-Robin thường được sử dụng phổ biến hơn

Trang 65

Thuật toán thuộc nhóm Monte

Carlo

Thuật toán thuộc nhóm Monte Carlo được sử dụng trong việc khẳng định hay phủ định một vấn đề nào đó

Thuật toán luôn đưa ra câu trả lời và câu trả lời thu được chỉ có khả năng hoặc là “Có” (yes) hoặc là “Không” (no)

Thuật toán “yes-biased Monte Carlo” là thuật toán Monte Carlo, trong đó, câu trả lời “Có” (Yes) luôn chính

xác nhưng câu trả lời “Không” (No) có thể không chính xác

Trang 66

Ưu điểm: Xử lý nhanh (số nguyên dương n có thể được kiểm tra trong thời gian tỉ lệ với log2n, tức là số

lượng các bit trong biểu diễn nhị phân của n)

Có khả năng kết luận của thuật toán không hoàn toàn chính xác, nghĩa là có khả năng một hợp số n lại

được kết luận là số nguyên tố, mặc dù xác suất xảy ra kết luận không chính xác là không cao

Có thể khắc phục bằng cách thực hiện thuật toán nhiều lần để giảm khả năng xảy ra kết luận sai xuống

dưới ngưỡng cho phép kết luận có độ tin cậy cao

Thuật toán Miller-Rabin

Trang 67

Phân tích số nguyên dương n = 2k m + 1 với m lẻ

Chọn ngẫu nhiên số nguyên dương a {1, 2, , n – 1}

Ngày đăng: 29/03/2014, 19:20

HÌNH ẢNH LIÊN QUAN

Đồ thị so sánh chi phí công phá khóa bí mật  và khóa công cộng - Chương4: Modes of Operation docx
th ị so sánh chi phí công phá khóa bí mật và khóa công cộng (Trang 71)
Sơ đồ chữ ký RSA - Chương4: Modes of Operation docx
Sơ đồ ch ữ ký RSA (Trang 88)
Sơ đồ chữ ký RSA - Chương4: Modes of Operation docx
Sơ đồ ch ữ ký RSA (Trang 91)
Sơ đồ chữ ký ElGamal - Chương4: Modes of Operation docx
Sơ đồ ch ữ ký ElGamal (Trang 92)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w