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

Tìm hiểu một số kỹ thuật tấn công hệ mật RSA

83 466 0

Đ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 83
Dung lượng 1,96 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngày nay, thuật ngữ “thời đại thông tin” đã trở nên quá phổ biến đối với nhiều người. Có thể nói, chưa bao giờ công nghệ thông tin lại phát triển bùng nổ như hiện nay. Tin học có mặt tại hầu hết trong các lĩnh vực của đời sống xã hội, đã, đang và sẽ còn tiếp tục đem lại những ứng dụng và lợi ích vô cùng to lớn cho con người. Tại hầu khắp các nước trên thế giới, tin học phát triển vượt bậc. Những hệ thống tin học không còn nhỏ lẻ, cục bộ, mà trái lại, chúng không ngừng phát triển trở thành những hệ thống kiến trúc tin học lớn, đồ sộ và mang tính toàn cầu, đặc biệt là các hệ thống mạng truyền tin và các hệ thống thương mại điện tử. Các hệ thống này ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực, mọi hoạt động của toàn xã hội. Điều này cũng đồng nghĩa với việc, nhu cầu đảm bảo an toàn và bảo mật thông tin phải được đặt lên hàng đầu và có tầm quan trọng thời sự. Cũng chính vì vậy mà công nghệ mã hóa thông tin ngay từ khi ra đời đã phát triển nhanh chóng vượt bậc và đạt được rất nhiều kết quả ứng dụng sâu sắc. Một trong những công nghệ mã hoá hiện đại và có ứng dụng phong phú là công nghệ mã hóa khóa công khai, mà đại diện là hệ mật mã RSA. Hệ mật RSA được phát minh bởi Ron Rivest, Adi Shamir và Len Adleman, công bố lần đầu vào tháng 8 năm 1977 trên tạp chí khoa học Mỹ. Hệ mật được sử dụng trong lĩnh vực đảm bảo tính riêng tư và cung cấp cơ chế xác thực dữ liệu số. Ngày nay, RSA đã đư ợc phát triển ứng dụng rộng rãi trong thương mại điện tử. Nó được sử dụng trên Web servers và trên các Browsers nhằm đảm bảo an ninh đường truyền, được sử dụng trong việc tạo khóa và xác thực của mail, trong truy cập từ xa…. Tóm lại, RSA được ứng dụng trong các lĩnh vực nơi mà an ninh an toàn thông tin được đòi hỏi. Ngay từ khi được công bố, hệ RSA đã được phân tích hệ số an toàn bởi nhiều nhà nghiên cứu. Thực tế, vấn đề thám mã đối với hệ mật RSA hiện tại đang được các nhà nghiên cứu tập trung khai thác các sơ hở của RSA như: tấn công vào5 số mũ công khai hoặc số mũ bí mật thấp, tấn công vào các tham số nguyên tố p, q bé hoặc cách xa nhau lớn, hoặc họ tập trung vào việc phân tích nhân tử số n (modul của RSA). Từ những vấn đề trên, tôi chọn đề tài nghiên cứu “Tìm hiểu một số kỹ thuật tấn công hệ mật RSA”. Đề tài cung cấp các kiến thức về phương pháp bảo vệ an toàn thông tin dữ liệu có tính an toàn cao nhất hiện nay là dùng hệ mã khoá công khai RSA, các kiến thức cơ bản về các hệ mật mã. Đồng thời trình bày một số phương pháp tấn công RSA . Luận văn gồm 3 chương với các nội dung sau: Chương I: Trình bày một số cơ sở toán học được dùng để xây dựng hệ mật mã công khai RSA và là công cụ để mô tả, phân tích các điểm yếu, phương pháp tấn công hệ mật RSA được đề cập ở các chương tiếp theo. Chương II: Giới thiệu về một số hệ mật đang được ứng dụng gồm các hệ mật cổ điển và hệ mật khóa công khai. Nghiên cứu các vấn đề về hệ mật khóa công khai và đi sâu tìm hiểu hệ mật RSA: Phương pháp mã hóa và giải mã, độ an toàn của RSA, vấn đề quản lý khóa. Chương III: Trình bày về một số phương pháp tấn công hệ mật RSA. Cài đặt ứng dụng về phương pháp tấn công RSA bằng nhân tử hóa số N sử dụng định lý Fermat.

Trang 1

MỤC LỤC

MỤC LỤC 1

MỞ ĐẦU 4

CHƯƠNG I CÁC KHÁI NIỆM CƠ BẢN 6

1.1 Một số khái niệm toán học 6

1.1.1 Số nguyên tố và số nguyên tố cùng nhau 6

1.1.2 Đồng dư thức 8

1.1.3 Không gian Zn và Zn* 10

1.1.4 Phần tử nghịch đảo 10

1.1.5 Khái niệm nhóm, nhóm con, nhóm Cyclic 11

1.1.6 Hàm Ф Euler 11

1.1.7 Các phép toán cơ bản trong không gian modulo 12

1.1.8 Hàm một phía và hàm một phía có cửa sập 13

1.1.9 Hàm Euler, định lý Euler và định lý Fermat 14

1.1.10 Bậc và căn nguyên thủy 15

CHƯƠNG II HỆ MẬT MÃ KHÓA CÔNG KHAI 17

2.1 Tổng quan về các hệ mật mã 17

2.1.1 Hệ mã hóa đối xứng 17

2.1.2 Hệ mật khóa công khai 26

2.2 Hệ mật khóa công khai RSA 33

2.2.1 Giới thiệu 33

2.2.2 Phương pháp lập mã và giải mã của hệ mật RSA 34

2.2.3 Độ an toàn của RSA 35

2.2.4 Quản lý khóa của hệ mật RSA 38

CHƯƠNG III MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG RSA 50

Trang 2

3.1 Thám mã RSA 50

3.1.1 Một số giả thiết ngầm định 52

3.1.2 Phân tích các số nguyên lớn 53

3.2 Các tấn công cơ bản 54

3.2.1 Modul chung 54

3.2.2 Mù (Blinding) 55

3.3 Số mũ riêng bé (Low private Exponent) 56

3.3.1 Độ lớn e 57

3.3.2 Sử dụng CRT 58

3.4 Số mũ công khai bé (Low public Exponent) 58

3.4.1 Hastad's Broadcast Attack 59

3.4.2 Franklin-Reiter Related Message Attack 59

3.5 Thành phần công khai bé 60

3.5.1 Coppersmith's Short Pad Attack 60

3.5.2 Tấn công bằng khóa riêng 61

3.6 Một số tấn công bằng nhân tử hóa số N với số N lớn 63

3.6.1 Tìm nhân tử lớn nhất thứ nhất ≤ N 63

3.6.2 Phân tích thứ hai 64

3.6.3 Phân tích thứ ba 65

3.6.4 Thuật toán Pollard (p-1) 66

3.7 Một số phương pháp gài bẫy mới trong RSA 68

3.7.1 Phương pháp gài bẫy cặp bí mật (SP) 68

3.7.2 Phương pháp gài bẫy nhân độc lập (IS) 70

3.8 Cài đặt các tấn công 73

3.8.1 Tấn công dựa trên thời gian 73

3.8.2 Tấn công dựa trên các lỗi ngẫu nhiên 75

3.9 Phương pháp tấn công bằng nhân tử hóa số N sử dụng định lý Fermat 76

3.9.1 Bổ đề 1 76

Trang 3

3.9.2 Định lý Fermat 77

3.9.3 Xây dựng chương trình 79

KẾT LUẬN 81

TÀI LIỆU THAM KHẢO 82

Trang 4

MỞ ĐẦU

Ngày nay, thuật ngữ “thời đại thông tin” đã trở nên quá phổ biến đối vớinhiều người Có thể nói, chưa bao giờ công nghệ thông tin lại phát triển bùng nổnhư hiện nay Tin học có mặt tại hầu hết trong các lĩnh vực của đời sống xã hội, đã,đang và sẽ còn tiếp tục đem lại những ứng dụng và lợi ích vô cùng to lớn cho conngười Tại hầu khắp các nước trên thế giới, tin học phát triển vượt bậc Những hệthống tin học không còn nhỏ lẻ, cục bộ, mà trái lại, chúng không ngừng phát triểntrở thành những hệ thống kiến trúc tin học lớn, đồ sộ và mang tính toàn cầu, đặcbiệt là các hệ thống mạng truyền tin và các hệ thống thương mại điện tử Các hệthống này ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực, mọi hoạt động củatoàn xã hội Điều này cũng đồng nghĩa với việc, nhu cầu đảm bảo an toàn và bảomật thông tin phải được đặt lên hàng đầu và có tầm quan trọng thời sự Cũng chính

vì vậy mà công nghệ mã hóa thông tin ngay từ khi ra đời đã phát triển nhanh chóngvượt bậc và đạt được rất nhiều kết quả ứng dụng sâu sắc Một trong những côngnghệ mã hoá hiện đại và có ứng dụng phong phú là công nghệ mã hóa khóa côngkhai, mà đại diện là hệ mật mã RSA

Hệ mật RSA được phát minh bởi Ron Rivest, Adi Shamir và Len Adleman,công bố lần đầu vào tháng 8 năm 1977 trên tạp chí khoa học Mỹ Hệ mật được sửdụng trong lĩnh vực đảm bảo tính riêng tư và cung cấp cơ chế xác thực dữ liệu số.Ngày nay, RSA đã đư ợc phát triển ứng dụng rộng rãi trong thương mại điện tử Nóđược sử dụng trên Web servers và trên các Browsers nhằm đảm bảo an ninh đườngtruyền, được sử dụng trong việc tạo khóa và xác thực của mail, trong truy cập từxa… Tóm lại, RSA được ứng dụng trong các lĩnh vực nơi mà an ninh an toàn thôngtin được đòi hỏi

Ngay từ khi được công bố, hệ RSA đã đư ợc phân tích hệ số an toàn bởinhiều nhà nghiên cứu Thực tế, vấn đề thám mã đối với hệ mật RSA hiện tại đangđược các nhà nghiên cứu tập trung khai thác các sơ hở của RSA như: tấn công vào

Trang 5

số mũ công khai hoặc số mũ bí mật thấp, tấn công vào các tham số nguyên tố p, q

bé hoặc cách xa nhau lớn, hoặc họ tập trung vào việc phân tích nhân tử số n (modul

Luận văn gồm 3 chương với các nội dung sau:

Chương I: Trình bày một số cơ sở toán học được dùng để xây dựng hệ mật

mã công khai RSA và là công cụ để mô tả, phân tích các điểm yếu, phương pháp tấncông hệ mật RSA được đề cập ở các chương tiếp theo

Chương II: Giới thiệu về một số hệ mật đang được ứng dụng gồm các hệ mật

cổ điển và hệ mật khóa công khai Nghiên cứu các vấn đề về hệ mật khóa công khai

và đi sâu tìm hiểu hệ mật RSA: Phương pháp mã hóa và giải mã, độ an toàn củaRSA, vấn đề quản lý khóa

Chương III: Trình bày về một số phương pháp tấn công hệ mật RSA Cài đặtứng dụng về phương pháp tấn công RSA bằng nhân tử hóa số N sử dụng định lýFermat

Luận văn đã được kiểm tra kỹ nhưng cũng không tránh khỏi những sai sót,rất mong nhận được sự đóng góp ý kiến của quý thầy cô, bạn bè và các đồng nghiệp

để hoàn thiện hơn nữa

Trang 6

CHƯƠNG I CÁC KHÁI NIỆM CƠ BẢN

Chương này trình bày một số khái niệm cơ sở toán học, lý thuyết số liênquan được dùng để xây dựng hệ mật mã công khai RSA và là công cụ để mô tả,phân tích các điểm yếu, phương pháp tấn công hệ mật RSA

1.1 Một số khái niệm toán học

1.1.1 Số nguyên tố và số nguyên tố cùng nhau

1.1.1.1 Các ước số

Nói rằng, b (một số khác 0) là ước số của a nếu a=mb, với một giá trị m nào

đó Ở đây a, b, m là các số nguyên Như vậy, b là ước số của a, nếu như chia a cho

b không còn lại số dư Để ký hiệu b là ước số của a thường sử dụng cách viết ba.

Có các quan hệ sau:

o Nếu a1, thì a =1.

o Nếu ba và ab, thì a =±b.

o Số b bất kỳ khác 0 là ước số của 0.

o Nếu bg và bh, thì b(mg + nh) đối với bất kì số nguyên m, n.

Để chứng minh khẳng định cuối cùng, cần chú ý như sau:

nếu bg thì g có dạng g = b * g1, đối với số nguyên g1nào đó,

nếu bh thì h có dạng h = b * h1, đối với giá trị nguyên h1nào đó,

Trang 7

Ví dụ: 2, 3, 5, 7, 11, 13, …

Một số nguyên bất kỳ a > 1 có thể phân tích thành các thừa số và được trình

bày dưới dạng:

,

2 1 2

Nếu P là kí hiệu tập hợp tất cả các số nguyên tố, thì đối với một số nguyên

dương bất kì được viết duy nhất dưới dạng:

o Ước số bất kỳ của a và b đều là ước số của c.

Có thể định nghĩa tương đương như sau:

gcd(a, b) = max [k, khi ka và kb].

Bởi vì, đòi hỏi rằng UCLN là một số dương, chúng ta có

gcd(a, b) = gcd(a, –b ) = gcd(–a, b) = gcd(–a, –b ).

Nói chung, gcd(a, b) = gcd(|a|, |b|).

Ví dụ: gcd(60, 24 ) = gcd(60, –24 ) = 12.

Trang 8

Bởi vì tất cả các số nguyên khác không đều là ước số của số 0, chúng ta luôn

luôn có: gcd(a, 0 ) = |a|.

Dễ dàng xác định được UCLN của hai số nguyên dương, nếu các số này đượctrình bày dưới dạng tích của các thừa số nguyên tố

Ví dụ:

300 = 22* 31* 52,

18 = 21* 32

gcd(18, 300) = 21×31×50= 6

Trong trường hợp chung:

k = gcd(a, b)k p = min (a p , b p ), đối với tất cả các p.

Các số nguyên a và b là nguyên tố cùng nhau, nếu chúng không có ước số nguyên tố chung, hay ước số chung duy nhất của chúng là 1 Nói một cách khác a

và b là hai số nguyên tố cùng nhau nếu gcd(a, b) = 1.

Ví dụ: Số 8 và số 15 là các số nguyên tố cùng nhau, bởi vì ước số của 8 là 1,

2, 4 và 8, còn các ước số của 15 là 1, 3, 5 và 15 Như vậy, 1 là ước số chung duynhất của hai số này

1.1.2 Đồng dư thức

Định nghĩa 1: Cho a là một số nguyên và m là một số nguyên dương Khi đó ta ký

hiệu a mod m là số dư khi chia a cho m.

Từ định nghĩa số dư, ta suy ra rằng a mod m là số nguyên r sao cho: a=qm +

r và 0≤ r < m.

Ví dụ: Ta thấy:

17 mod 5 =2, -133 mod 9 =2 và 2001 mod 101 = 82

Trang 9

Định nghĩa 2 (Đồng dư): Nếu a và b là hai số nguyên và m là một số nguyên

dương, thì a được gọi là đồng dư với b theo modulo m nếu a-b chia hết cho m và được ký hiệu a≡b (mod m).

Chú ý rằng a ≡ b (mod m) nếu và chỉ nếu a mod m = b mod m.

Ví dụ: 5≡7 (mod 2) vì 5 mod 2 =1 và 7 mod 2 =1.

Một số tính chất quan trọng của đồng dư:

Tính chất 1: Nếu a1 ≡b1 modma2 ≡b2 mod m thì a1 +a2 ≡b1 + b2 mod m

Chứng minh: Từ giả thuyết ta có a1 = mt1 + b1 và a2 = mt2 +b2, suy ra

m t t b

b

a

a1+ 2 = 1+ 2 +(1+ 2) , điều này có nghĩa là a1 +a2≡b1+b2 modm

Tính chất 2: Nếu a1 ≡b1 modma2 ≡b2 modm thì a1 *a2≡b1*b2mod m

Chứng minh: Từ giả thuyết ta có a1 =mt1+b1 và a2 =mt2+b2, suy ra

n t mt t b t b b

b

a

a1* 2 = 1 * 2+( 1 2+ 21+ 1 2) , điều này có nghĩa là a1 *a2 ≡b1*b2 modm

Tính chất 3: Nếu nhưgcd(d,m)=1,abmod m, a=a1d,b=b1d, thì

Ví dụ: Chứng minh rằng 37n+2+16n+1+23nchia hết cho 7

Giải: Rõ ràng chúng ta thấy rằng 37 ≡ 2 mod 7,16 ≡ 2 mod 7và23 ≡ 7 mod 7, từ tínhchất 2 có: 37n+2 ≡ 2n+2mod 7,16n+1≡ 2n+1mod 7,23n ≡ 7nmod 7

Từ tính chất 1 có: 37n+2+16n+1+23n≡ 7 2nmod 7, và từ tính chất 3 suy ra điều phảichứng minh

Trang 10

1.1.3 Không gian Zn và Zn*

Không gian Z n (các số nguyên theo modulo n)

Không gian các số nguyên theo modulon là tập hợp các số nguyên {0, 1,…, n-1} bao gồm hai phép toán cộng và nhân Việc cộng và nhân trong Z n được thựchiện như trong phép cộng và nhân các số nguyên, ngoại trừ một điểm là các kết quả

sẽ được rút gọn theo modulon.

Ví dụ: Tính 11 * 13 trong Z16 Tương tự như với các số nguyên ta có143

143 = × + , bởi vậy143 mod 16 = 15 Do đó11 × 13 = 15 trong Z16

Không gian Z n * : Là tập hợp các số nguyên p ϵ Z n, nguyên tố cùng nhau.Tức là Zn ={ p ϵ Z n | gcd(n, p)=1}, Ф(n) là số phần tử của Z n

Cho a ϵ Z n , a là khả nghịch khi và chỉ khi gcd(a, n) =1.

Giả sử d=gcd(a, n) Phương trình đồng dư ax≡b mod n có nghiệm x nếu và chỉ nếu d chia hết cho b, trong trường hợp các nghiệm d nằm trong khoảng 0 đến n-1 thì các nghiệm đồng dư theo modulo n/d.

Ví dụ: 4 -1 ≡ 7 (mod 9) vì 4×7 ≡ 1 ( mod 9)

Trang 11

1.1.5 Khái niệm nhóm, nhóm con, nhóm Cyclic

Định nghĩa: Nhóm là bộ đôi (G, * ), trong đó G là tập khác Ф, và * là một

phép toán hai ngôi trong G thỏa mãn ba tiên đề sau:

Nhóm Cyclic: Nhóm G được gọi là nhóm Cyclic nếu tồn tại một phần tử α ϵ

G sao cho với mỗi b ϵ G có một số nguyên i sao cho b = α i Phần tử α như vậy

được gọi là phần tử sinh của G.

Nếu G là một nhóm và a ϵ G thì tập tất cả các lũy thừa của a sẽ tạo nên một nhóm con Cyclic của G Nhóm này được gọi là nhóm con sinh bởi a và được ký

hiệu là

Ví dụ: (Z + , *) là một nhóm Cyclic có phần tử sinh là 1.

1.1.6 Hàm Ф Euler

Định nghĩa: Với n ≥ 1 chúng ta gọi φ(n) là tập các số nguyên tố cùng nhau

với n nằm trong khoảng [1, n].

Tính chất:

1 Nếu p là số nguyên tố → φ(p) = p-1

2 Nếu p = m.n, gcd(m, n) =1 → φ(p) = φ(m) φ(n)

Trang 12

3 Nếu n = là thừa số nguyên tố của n thì

1.1.7 Các phép toán cơ bản trong không gian modulo

Cho n là một số nguyên dương Các phần tử của Z n sẽ được biểu thị bởi các

Các phần tử nghịch đảo trong Z ncó thể được tính bằng cách dùng thuật toán

Euclie mở rộng được mô tả dưới đây:

Thuật toán (Tính các nghịch đảo trong Z n )

VÀO: a ϵ Z n

RA: a -1 mod n (nếu tồn tại)

1 Dùng thuật toán Euclide mở rộng để tìm các số nguyên x và

y sao cho ax + ny = d trong đó d = gcd(a, n)

2 Nếu d > 1 thì a -1 mod n không tồn tại Ngược lại return (x) Phép lũy thừa theo modulo có thể được thực hiện có hiệu quả bằng thuật toán

nhân và bình phương có lặp Đây là một thuật toán rất quan trọng trong nhiều thủtục mật mã

Trang 13

Cho biểu diễn nhị phân của a là:

trong đó mỗi k i ϵ {0, 1} khi đó

Thuật toán nhân và bình phương có lặp để lấy lũy thừa trong Z n

VÀO: a ϵ Z n và số nguyên k, ( 0 ≤ k < n) có biểu diễn nhị phân:

1.1.8 Hàm một phía và hàm một phía có cửa sập

Một hàm một phía là hàm mà dễ dàng tính toán ra quan hệ một chiều nhưngrất khó để tính ngược lại

Ví dụ: Biết giả thiết x thì có thể dễ dàng tính ra f(x), nhưng nếu biết f(x) thì

rất khó tính ra được x Trong trường hợp này khó có nghĩa là để tính ra được kết quả

thì phải mất rất nhiều thời gian để tính toán

f(x) được gọi là hàm một phía có cửa sập nếu tính xuôi y = f(x) thì dễ nhưng tính ngược x = f -1 (y) thì khó tuy nhiên nếu có “cửa sập” thì vấn đề tính ngược trở

nên dễ dàng Cửa sập ở đây là một điều kiện nào đó giúp chúng ta dễ dàng tínhngược

Trang 14

Ví dụ: y = f(x) = x b mod n, tính xuôi thì dễ nhưng tính ngược x=y a mod n thì khó vì phải biết a với a*b ≡ 1 (mod (φ(n))) trong đó φ(n) = (p-1)(q-1) Nhưng nếu biết cửa sập p, q thì việc tính n = p*q và tính a trở nên dễ dàng.

Hộp thư là một ví dụ về hàm một phía có cửa sập Bất kỳ ai cũng có thể bỏthư vào thùng Bỏ thư vào thùng là một hành động công cộng Mở thùng thư khôngphải là hành động công cộng Nó là việc khó khăn, bạn sẽ cần đến mỏ hàn để pháhoặc những công cụ khác Tuy nhiên nếu bạn có “cửa sập” (Trong trường hợp này

là chìa khóa của hòm thư) thì công việc mở hòm thư thật dễ dàng

1.1.9 Hàm Euler, định lý Euler và định lý Fermat

Định nghĩa (Hàm Euler)

Cho n là số nguyên dương, đặt(n)là số các phần tử của tập hợp, mà tập này làcác số nguyên trong khoảng [ ]1 ,n và nguyên tố cùng nhau với n, thì(n)gọi là hàmEuler

Ta công nhận một số tính chất quan trọng của hàm Euler:

p p p

n 1 2

2 1

p n

(

2 1

Trang 15

a = 2, n = 11, (11) = 10, 210= 1024≡1 mod 11.

Các hệ quả của định lý Euler:

Hệ quả 1: nếu gcd(c, n)=1 và a≡b (mod(n)) với a, b là 2 số tự nhiên, thì

Hệ quả 2: nếu e, d là các số nguyên thỏa mãn thì với mọi số c

nguyên tố cùng nhau với n, ta có

Định lý Fermat (bé): Cho p là số nguyên tố, a là số nguyên dương không

chia hết cho p Khi đó ta có:

Từ định lý Fermat chúng ta có các hệ quả quan trọng sau:

Hệ quả 1: Cho aZ , p là số nguyên tố, thì ta có:

Hệ quả 2: Cho a,bZ , p là số nguyên tố (a+b)na n+b nmodp

Ví dụ: Chứng mình rằng 118+218+318+418+518+618 ≡–1 mod 7

Giải: Các số 1, 2, 3, 4, 5, 6 là số nguyên tố cùng nhau với 7 Nên theo định lý

Fermat chúng ta có các phương trình sau:

7 mod

1.1.10 Bậc và căn nguyên thủy

Định nghĩa 1 (Bậc)

Trang 16

Cho gcd(a, n) = 1 Bậc a mod n là số nguyên dương nhỏ nhất  thỏa mãnphương trình đồng dư thức:

n

a ≡ 1 mod ,

Kí hiệu bậc là Ord n (a).

Ví dụ: Tìm bậc của 2 mod 5

Giải: 21mod 5 = 2; 22mod 5 = 4; 23mod 5 = 3; 24mod 5 = 1; vậy Ord5(2) = 4

Định nghĩa 2 (Căn nguyên thủy)

Nếu như bậc của a modulo n bằng giá trị của hàm Euler của n Thì a gọi là căn nguyên thủy của n.

Ví dụ: Số 2 là căn nguyên thủy của 5 Vì Ord5(2) =  ( 5 ) = 4

Trang 17

CHƯƠNG II HỆ MẬT MÃ KHÓA CÔNG KHAI

Chương này giới thiệu và phân biệt các hệ mật mã khóa bí mật và hệ mật mãkhóa công khai Tiếp theo, ta trình bày về hệ mật khóa công khai RSA: phươngpháp mã hóa và giải mã, độ an toàn của RSA, vấn đề quản lý khóa

2.1 Tổng quan về các hệ mật mã

2.1.1 Hệ mã hóa đối xứng

Định nghĩa:

Hệ mã hóa khóa đối xứng là hệ mã hóa mà biết được khóa lập mã thì có thể

“dễ” tính được khóa giải mã và ngược lại Đặc biệt một số hệ mã hóa có khóa lập

mã và khóa giải mã trùng nhau (ke=kd), như hệ mã hóa “dịch chuyển” hay DES Hệ

mã hóa khóa đối xứng còn gọi là Hệ mã hóa khóa bí mật, hay khóa riêng, vì phảigiữ bí mật cả 2 khóa Trước khi dùng hệ mã hóa khóa đối xứng, người gửi và ngườinhận phải thỏa thuận thuật toán mã hóa và khóa chung (lập mã hay giải mã), khóaphải được bí mật

Độ an toàn của hệ mã hóa loại này phụ thuộc vào khóa, nếu để lộ ra khóa nàynghĩa là b ất kỳ người nào cũng có thể mã hóa và giải mã thông báo trong hệ thống

mã hóa Sự mã hóa và giải mã của hệ thống mã hóa khóa đối xứng biểu thị bởi:

Hình 2.1: Mô hình hệ thống mã hóa đối xứng

Trang 18

Hệ mã hóa khóa đối xứng thường được sử dụng trong môi trường mà khóachung có thể dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một mạng nội bộ.

Hệ mã hóa khóa đối xứng thường dùng để mã hóa nh ững bản tin lớn, vì tốc độ mãhóa và giải mã nhanh hơn hệ mã hóa công khai

2.1.1.1 Mã dịch

Hãy xét R = C = K = Z 26 ; x, y ϵ Z 26 Với mỗi 0 ≤ K ≤ 26, ta định nghĩa:

Hệ mật sử dụng Z 26vì trong bảng chữ cái tiếng Anh có 26 chữ cái Chúng ta

có thể sử dụng mã dịch để mã hóa văn bản tiếng Anh bằng cách thiết lập tương ứng

giữa các ký tự trong bảng chữ cái với thặng dư 26 như sau: A↔0, B↔1,…, Z↔25.

Trang 19

12 11 13 18 21 18 25 11 18 11 24 25 19

Sau đó ta chuyển chuỗi số nguyên này trở lại các ký tự, ta được:

MLNSVSZLSLYZT

Để giải mã bản đã mã hóa, đầu tiên chúng ta phải chuyển bản mã thành chuỗi

số nguyên, sau đó trừ mỗi số đi 11 (rút gọn mod 26), và cuối cùng chuyển chuỗi số

nguyên về thành các ký tự

Chú ý: Chúng ta có thể thấy hệ mật mã dịch (modulo 26) là không an toàn do

nó có thể bị giải mã bằng phương pháp vét cạn khóa Do không gian khóa chỉ có 26giá trị nên rất dễ dàng để kiểm thử các giá trị cho tới khi thu được một bản rõ có

Trang 20

MATMAKHOACONGKHAI

Tại điểm này ta xác định được bản rõ và có thể dừng lại Khóa tìm được làK=9

Trung bình có thể tìm ra bản rõ sau khi thử 26/2 = 13 quy tắc giải mã

Như vậy, để đảm bảo một hệ mật có độ an toàn thì không thể xảy ra việc vétcạn khóa Có thể khắc phục bằng cách chọn không gian khóa lớn hơn Tuy nhiên,không gian khóa lớn cũng chưa đủ để đảm bảo độ an toàn của hệ mật

2.1.1.2 Hệ mật mã thay thế

Cho R = C = Z 26 K gồm tất cả các hoán vị có thể có của 26 ký tự: 0, 1, 2,

…, 25 Với mỗi hoán vị π ϵ K ta định nghĩa:

Trong hệ mã này, R và C tương ứng với 26 chữ cái trong bảng chữ cái tiếng

Trang 21

Như vậy, ta có Hàm giải mã là hàm hoán vịngược Từ hàm mã hóa ta có hàm giải mã sau:

hệ mật này là tương đối dễ dàng với một số phương pháp khác

2.1.1.3 Hệ mật Afine

Hệ mã dịch là trường hợp đặc biệt của hệ mã thay thế, hệ mã dịch chỉ gồm

26 hoán vị trong khi hệ mã thay thế có 26! Hoán vị của 26 ký tự Một trường hợpkhác của hệ mã thay thế là hệ mật Affine Trong hệ mật Affine ta hạn chế hàm mãhóa dưới dạng:

Các hàm này được gọi là hàm Affine, do đó hệ mật gọi là hệ mật Affine

(Nhận xét rằng khi a=1 ta có hệ mã dịc h).

Trang 22

Để có thể mã hóa, cần phải đảm bảo hàm Affine là phép nội xạ hay không.

Tức là, với mọi y ϵ Z 26ta muốn phương trình đồng dư:

Ta có thể khẳng định rằng phương trình trên có nghiệm duy nhất khi và chỉ

khi UCLN(a, 26) = 1 (UCLN là hàm tìm ước chung lớn nhất của a và 26) Trước hết giả sử rằng UCLN(a, 26) = d > 1 Khi đó hàm đồng dư ax ≡ 0 (mod 26) có (ít nhất)

2 nghiệm phân biệt trong Z26là x = 0 và x = 26/d Trong trường hợp này hàm

không phải là hàm nội xạ nên không thỏa mãn điều kiện hàm mã hóa

Ví dụ: a = 4 Do UCLN(4, 26) = 2 nên 4x + 7 không phải là hàm mã hóa do

x và x + 13 sẽ cho bản mã giống nhau với mọi x ϵ Z 26

Tiếp theo giả thiết UCLN(a, 26) = 1 Giả sử tồn tại x 1 , x 2thỏa mãn:

Khi đó

Do đó

Trang 23

Xét tính chất của phép chia: nếu UCLN(a, b) = 1 và a|(bc) thì a|c Do

và UCLN(a, 26 ) = 1 nên ta có , nghĩa là

Chúng ta đã chỉ ra rằng nếu UCLN(a, 26) = 1 thì phương trình đồng dư

ax ≡ y (mod 26) có ít nhất một nghiệm trong Z 26 Do đó nếu ta cho x biếnthiên trong Z26thì ax mod 26 nhận 26 giá trị riêng biệt modulo 26 Tức là ax mod 26

nhận 26 giá trị, mỗi giá trị đúng một lần, nghĩa là với mọi y ϵ Z26, phương trìnhđồng dư

ax ≡ y (mod 26) có duy nhất nghiệm y.

Vậy ta có thể mô tả hệ mật Affine như sau:

Ký hiệu = C = Z26và định nghĩa:

Với K ta xác định hàm mã hóa:

Và hàm giải mã:

2.1.1.4 Hệ mã dòng

Ý tưởng của hệ mã dòng là xây dựng khóa dòng z = z 1 z 2…và sử dụng chúng

để mã hóa chuỗi bản rõ x = x 1 x 2…dựa trên nguyên tắc:

Giả sử K là khóa và x 1 x 2 … là bản rõ Hàm f i được sử dụng để tạo ra z i

(thành phần thứ i trong khóa dòng) với f i là hàm của khóa K và i -1 ký tự bản rõ:

Thành phần z i của khóa dòng được dùng để mã hóa x i, tạo ra Do

đó, để mã hóa bản rõ x 1 x 2 ….ta cần tính toán các thành phần liên tiếp:

Trang 24

không gian khóa, là một tập hữu hạn các khóa có thể.

là tập hữu hạn các ký tự của khóa dòng

bộ tạo khóa dòng Với i ≥ 1, ta có:

Với mỗi , có một hàm mã hóa và một hàm giải mã tương ứngvới và là các hàm thỏa mãn: d z (e z (x)) = x với mọi bản

Xét một vài trường hợp điển hình của hệ mã dòng Một hệ mã dòng được gọi

là đồng bộ nếu khóa của hệ mã độc lập với bản rõ, tức là khóa dòng được tạo ra nhưmột hàm của khóa K Trong trường hợp này chúng ta coi K như hạt giống để mở

rộng thàn h khóa dòng z 1 z 2 ….

Một hệ mã được gọi là hệ mã tuần hoàn với chu kỳ d nếu z i+d = z ivới mọi số

nguyên i≥1 Hệ mã Vigennere với độ dài từ khóa là m có thể được coi như hệ mã tuần hoàn với chu kỳ m Trong trường hợp này khóa K = (k 1 , …, k m), bản thân khóa

K cung cấp m thành phần cho khóa dòng: z i = k i , 1 ≤ 1 ≤ m Sau đó khóa dòng tự lặp

Trang 25

và hàm giải mã giống với hàm mã hóa và giải mã của hệ mã dịch:

- Để giải mã, ta thực hiện phép toán:

Thuật mã hóa DES làm việc dựa trên các bit hay các số nhị phân 0, 1 Mỗimột nhóm 4 bit tạo thành 1 chữ số hexa

DES là mã hóa khối, có nghĩa là nó sẽ chia đoạn tin thành các khối 64 bit,

mã hóa chúng thành các khối text cùng kích cỡ (64 bit) Như vậy, DES làm việctrên từng khối tin có kích thước 64 bit, tương đương 16 số hexa Để mã hóa, DES

sử dụng các khóa Nhìn bên ngoài, các khóa là các số dài 16 số hexa (hay dài 64

Trang 26

bit) Mặc dù vậy chỉ có 56 bit của khóa chính được dùng trong thuật toán DES, 8 bitcòn lại chỉ dùng để kiểm tra tính chẵn lẻ Với các trường hợp văn bản có kích thước

là bội của 64, thì không có gì phải bàn, tuy nhiên, thực tế thì các đoạn tin cần mãhóa lại thường không rơi vào các loại này Khi đó, trước khi mã hóa, người ta làmcho đoạn tin văn bản gốc đủ độ dài là bội của 64 bit (8 byte) bằng cách có thể thêm

là bổ sung vào cuối đoạn tin các bit 0 sao cho đoạn tin có độ dài đủ là bội của 64 bit

2.1.2 Hệ mật khóa công khai

Phương pháp mã hóa đối xứng (symmetric cryptography) có ưu điểm là tốc

độ mã hóa và giải mã rất nhanh Tuy nhiên phương pháp này có nhược điểm là cầnmột kênh an toàn để trao đ ổi khóa bí mật (không luôn dễ dàng tìm được)

Hệ mật khóa công khai đã giải quyết được vấn đề này bằng cách sử dụng haikhóa: khóa công khai (public key) và khóa riêng (private key) Hai khóa này có vaitrò ngược nhau, một khóa để mã hóa còn một khóa dùng để giải mã

2.1.2.1 Giới thiệu chung về hệ mật khóa công khai

Hệ mật khóa công khai sử dụng hai khóa:

 Khóa công khai: có thể công bố cho mọi người biết, sử dụng để mã hóathông điệp và xác thực chữ ký

 Khóa riêng: chỉ người nhận thông điệp biết, sử dụng để giải mã thông điệp

và ký số

Hình 2.2 Sơ đồ mã hóa thông tin bằng hệ mật khóa công khai

Giả sử A muốn gửi thông điệp P cho B Khi đó A sẽ sử dụng khóa công khai

PU B của B để mã hóa P bằng thuật toán mã hóa E được bản mã C A gửi bản mã C

DA

truyền

Bảnmã

Giảimã

PUB

PRB

Trang 27

cho B B nhận được bản mã C sẽ sử dụng khóa riêng PR B của mình để giải mã C bằng thuật toán giải mã D thu được thông điệp P ban đầu.

Các yêu cầu của hệ mật khóa công khai: Thuật toán mã hóa công khai, tính

bảo mật nằm trong chìa khóa chứ không dựa vào thuật toán

Nguyên tắc mã hóa hệ mật khóa công khai:

Trong hệ thống có N đối tượng cùng trao đổi thông tin mật Mỗi đối tượng sẽ chọn cho mình một khóa lập mã k, sau đó xây dựng hàm mã hóa E k và hàm giải mã

D k tương ứng, hàm mã hóa E k được công bố công khai Vậy sẽ có N khóa lập mã tương ứng: k 1 , k 2, k N

Khi đối tượng thứ i (1≤ i≤ N) muốn gửi thông điệp cho đối tượng thứ j trong

hệ thống (1≤ j ≤ N), thông điệp sẽ được chuyển thành từng khối P với độ dài quy

định nào đó, mỗi khối này sẽ được mã hóa bằng hàm mã hóa đối tượng thứ j.

Thông điệp sau khi mã hóa được gửi đi sẽ có dạng:

Đối tượng j khi nhận được M sẽ giải mã để thu được P:

Do hàm giải mã là hàm giải mã của riêng đối tượng thứ j nên các đối tượng khác trong hệ thống dù có thu được bản mã M cũng khó có thể giải mã được

M trong thời gian chấp nhận được.

2.1.2.2 Một số hệ mật khóa công khai

a Hệ mật RSA

Hệ mật RSA được xây dựng dựa trên bài toán mũ Chọn n = p × q đủ lớn, p,

q là các số nguyên tố Cặp khóa lập mã là b và n Trong đó b là số mũ, được xác

Trang 28

định ngẫu nhiên sao cho , với là hàm Euler của n, được xác

định bởi:

K = (n, p, q, e, d) ta có hàm mã hóa và giải mã như sau:

E K (x) = x e mod n (hàm mã hóa)

D K (y) = y d mod n (hàm giải mã)

Nhận xét: Để hệ mật RSA được coi là an toàn thì cần phải chọn p và q là các

số nguyên tố lớn (khoảng 100 chữ số)

Hệ mật RSA có độ an toàn cao và thuật toán đơn giản nên được sử dụng rộngrãi Tuy nhiên tốc độ mã hóa chậm nên RSA không dùng để mã hóa khối dữ liệulớn mà dùng để trao đổi khóa hay xác thực,…

Trang 29

Từ mô tả hệ mật trên ta có thể thấy hàm mã hóa không phải là một phépnội xạ đơn ánh Do đó hàm giải mã không thể thực hiện một cách rõ ràng được.Trong thực tế có thể thấy, ứng với một bản mã bất kỳ có thể có bốn bản rõ.

Giả sử w là một trong bốn căn bậc 2 không tầm thường của 1 mod n, x ϵ Z n

Ta có phương trình sau:

Như vậy có bốn bản rõ có thể mã hóa thành là x; - x – B;

; và , với w là một căn bậc 2 không tầm thường của 1 modulo n Vấn đề đặt ra là không có cách nào để người nhận có thể phân biệt đâu là

bản rõ chính xác trừ khi có đủ tài liệu để loại bỏ ba bản còn lại

Xét từ phía người nhận, khi nhận được bản mã y và muốn xác định x thỏa

Trang 30

Khi đó, việc giải mã chỉ còn là việc tìm căn bậc 2 theo modulo n Việc này

tương đương với giải hai phương trình sau:

Có hai căn bậc 2 của C theo modulo p và hai căn bậc 2 của C theo modulo q.

Sử dụng định lý phần dư Trung Hoa có thể tìm ra bốn giá trị theo modulo n Chúng

ta có thể sử dụng tiêu chuần Euler để kiểm tra xem C có phải là thặng dư bậc 2 modulo p (và modulo q) hay không Trong thực tế, nếu việc mã hóa được thực hiện chính xác thì C sẽ là thặng dư bậc 2 Nhưng tiêu ch uẩn này không giúp tính toán giá

trị căn bậc 2

Khi p ≡ 3 (mod 4), có một công thức đơn giản để tính căn bậc 2 của thặng dư bậc 2 theo modulo p Giả sử C là thặng dư bậc 2 và p ≡ 3 (mod 4) Khi đó ta có:

Sử dụng tiêu chuẩn Euler ta có: Nếu C là thăng dư bậc 2 modulo p thì

Do đó, có hai căn bậc 2 của C modulo p là

Tương tự như vậy ta có hai căn bậc 2 của C modulo q là Từ đó

thu được bốn căn bậc 2 của x 1 modulo n.

Khi đã xác định được giá trị x 1 ta xác định giá trị của Từ đó cócông thức giải mã:

c Hệ mật ElGamal

Mô tả hệ mật:

Trang 31

Hệ mật Elgamal được xây dựng trên bài toán logarithm rời rạc Việc mô tả

bài toán được thiết lập trong trường hữu hạn Z p , p là số nguyên tố.

Thuật toán tạo khóa:

Mỗi cá thể A tham gia quá trình trao đổi phải tạo ra một khóa công khai vàkhóa bí mật tương ứng theo các bước sau:

Bước 1: Tạo số nguyên tố lớn ngẫu nhiên p và số sinh α của nhóm nhân Z p

số nguyên p.

Bước 2: Chọn số nguyên ngẫu nhiên a: 1 ≤ a ≤ p-2 và tính giá trị

Bước 3: Khi đó khóa công khai của A là ( p, α, ), khóa riêng bí mật là a.

Thuật toán mã hóa và giải mã hóa:

B mã hóa thông điệp m gửi cho A, A nhận được và giải mã m.

 Mã hóa

Để mã hóa thông điệp, B cần thực hiện các bước sau:

B thu nhập khóa công khai đáng tin cậy của A gồm (p, α, )

Biểu diễn thông điệp cần gửi dưới dạng số (số hóa thông điệp) m:

Trang 32

Chú ý: Các bên tham gia trao đổi thông điệp có thể thống nhất cùng chọn số

nguyên tố p và số sinh α giống nhau Trong trường hợp đó p và α không cần phải

Trang 33

công bố công khai như khóa công khai nữa Khi đó kích thước của khóa công khaicũng được giảm đi Một lợi ích nữa khi sử dụng chung giá trị cố định α là có thểtính toán trước các lũy thừa của α Còn một điều không thuận tiễn khi sử dụng nhiều

tham số giá trị lớn là cần phải tính toán nhiều giá trị modulo p.

2.2 Hệ mật khóa công khai RSA

2.2.1 Giới thiệu

Bài toán đầu tiên của Diffie và Hellman đã đưa ra một cách tiếp cận mới để

mã hóa và thực sự thách thức các nhà lập mã đạt được các thuật toán đáp ứng đượcyêu cầu của hệ thống khóa công khai Một trong những thành tựu đầu tiên được đưa

ra trong năm 1977 bởi các tác giả Ron Rivest, Adi Sharmir và Len Adleman Hệmật được đặt bởi tên các tác giả của nó là RSA (Rivest – Sharmir – Adleman)

Hình 2.3 Minh họa quá trình mã hóa khóa công khai RSA Trong đó P là bản rõ để truyền đi, m là bản số hóa của P, C là bản đã mã hóa.

Để truyền thông điệp P cho B, đầu tiên A số hóa thông điệp thành m, sau đó A sử dụng khóa công khai của B để mã hóa m thành bản mã hóa C, sau đó bản mã hóa C

Bên gửi

A

Sốhóa

Mãhóa

Giảimã

Bên nhậnB

Nguồn cặpKhóa của B

C = m e mod n

m = C d mod n

Khóa công khai

n, e

Khóa bí mật

n, d

Trang 34

được truyền cho B B nhận được bản mã hóa C sẽ sử dụng khóa riêng của mình để giải mã hóa thu được m, sau đó khôi phục lại thông điệp P từ m.

2.2.2 Phương pháp lập mã và giải mã của hệ mật RSA

iii Chọn số nguyên e sao cho UCLN( , e) =1, với 1 < e <

iv Tìm số d thỏa mãn d = e -1 (mod ) bằng thuật toán Euclid mở rộng Khi đó ta được khóa công khai là (n, e), khóa riêng là (d, p, q), e là số mũ mã hóa, d là số mũ giải mã, n là modulus.

 Mã hóa

Giả sử A muốn gửi thông điệp cho B A phải thực hiện theo các bước sau:

A sử dụng khóa công khai của B là (n, e).

• Để mã hóa thông điệp ta phải số hóa thông điệp Giả sử thông điệp sau khi số

hóa là m sao cho m ϵ [1, n-1].

Tính C = m e (mod n).

Gửi bản mã C cho B.

 Giải mã

B nhận được bản mã C sẽ tiến hành giải mã, sử dụng khóa riêng của mình.

Dùng khóa riêng d tính m = C d (mod n).

Trang 35

2.2.3 Độ an toàn của RSA

Có 4 cách tấn công vào thuật toán RSA như sau:

1 Tấn công vét cạn: thử tất cả các khóa riêng có thể

2 Tấn công bằng phương pháp toán học: có một số cách thực hiện theo lối tiếpcận này, tất cả tập trung vào khả năng phân tích một số lớn thành tích hai sốnguyên tố lớn

3 Tấn công theo thời gian: dựa vào khoảng thời gian giải mã của thuật toán

4 Tấn công bản mã: dựa vào các đặc tính của thuật toán RSA

Trang 36

Để tránh các tấn công vét cạn khóa, ta sử dụng các số nguyên tố lớn để việc vé tcạn là không thể thực hiện T uy nhiên, vì lý do liên quan đến tốc độ tính toán, việctạo khóa và mã hóa/giải mã đều phức tạp nên khóa càng lớn thì thuật toán càngchậm.

Bài toán phân tích thừa số

Có rất nhiều thuật toán để phân tích một số thành tích của hai số Có 3 thuậttoán hữu hiệu được sử dụng nhiều là: S àng bình phương, thuật toán đường cong

elliptic và sàng trường số Các thuật toán nổi tiếng trước đó là thuật toán p – 1, thuật toán p + 1 của William, thuật toán phân đoạn liên tiếp và thuật toán chia kiểm thử.

Giả sử rằng số nguyên n cần phân tích là số lẻ Thuật toán chia kiểm thử sẽ thực hiện việc chia n cho mọi số nguyên lẻ tới Nếu n < 10 12 thì đây là thuật

toán thích hợp, nhưng với n lớn hơn thì cần thuật toán phức tạp hơn.

Không tìm được thừa số của n.

Trong đó B là giới hạn.

Ví dụ:

Trang 37

Cho n = 15770708441, áp dụng thuật toán với B = 180, trong bước 3 ta tìm được a=11620221425, d = 135979 Khi kết thúc thuật toán ta phân tích được:

15770708441 = 135979 × 115979

Trong trường hợp này việc phân tích thành công là do số 135978 có các thừa

số nguyên tố nhỏ:

135978 = 2×3×131×173

Thuật toán Dixon và sàng bình phương

Thuật toán Dixon dựa trên ý tưởng rất đơn giản: Nếu ta có thể tìm được

thì UCLN(x-y, n) là một thừa số không tầm thường của n.

Phương pháp này sử dụng cơ sở thừa số, là tập B các số nguyên tố nhỏ Trước hết ta phải tìm các số nguyên x thỏa mãn: Tất cả các thừa số nguyên tố của x 2

mod n đều xuất hiện trong tập B Sau đó, sử dụng các thừa số của các số x như trên sao cho mọi số nguyên tố trong B được sử dụng một số chẵn lần Khi đó ta sẽ nhận

Trang 38

Giản ước tích trong ngoặc theo mod n ta có:

9503435785 2 ≡ 546 2 (mod n)

Sau đó ta tính được:

UCLN(9503435785-546, 15770708441) = 115759

Tìm được thừa số 115759 của n.

Giả sử B = {p 1 …p B } là cơ sở thừa số Cho C là số lớn hơn B không đáng kể (có thể cho C = B + 10) và giả sử có C phương trình đồng dư:

với 1 ≤ j ≤ C.

Nếu ta có thể tìm được m ột tập con của vecto mà tổng các phần tử trong

tập con này bằng 0 (mod 2) thì các x jtương ứng sẽ sử dụng một số chẵn lần các thừa

Điều này cho thấy phương trình đồng dư trên có thể được phân tích

2.2.4 Quản lý khóa của hệ mật RSA

Khi sử dụng hệ mật mã khóa đối xứng, vấn đề đặ t ra là phải trao đổi khóa bímật Một trong những công dụng của hệ mật RSA là giải quyết vấn đề phân phốikhóa Có hai lĩnh vực sử dụng hệ mật khóa công khai:

Trang 39

• Phân phối khóa công khai.

• Sử dụng hệ mật khóa công khai để phân phối khóa bí mật

2.2.4.1 Phân phối khóa công khai

Có các kỹ thuật phân phối khóa sau:

• Thông báo khóa công khai

• Danh mục khóa công khai có sẵn

• Phân quyền khóa công khai

• Chứng chỉ khóa công khai

a Thông báo khóa công khai

Do hệ mật khóa công khai sử dụng khóa công khai nên tất cả các đối tượngtham gia trao đổi thông điệp có thể gửi khóa công khai của họ cho các đối tác cònlại hoặc thông báo rỗng rãi khóa công khai của họ

Hình 2.4 Thông báo khóa công khai

Mặc dù phương pháp trên tương đối thuận tiệ n nhưng nó có một vài nhượcđiểm Mọi người đều có thể giả mạo khóa công khai Do đó, bất kỳ một người nàođều có thể giả mạo là A và gửi khóa công khai của mình cho các đối tác khác hoặc

Trang 40

thông báo rỗng rãi khóa công khai của mình Sau đó họ nhận thông điệp lẽ ra phảigửi cho A và đọc giải mã được thông điệp nhờ khóa riêng của họ.

b Danh mục khóa công khai

Một kỹ thuật khác đảm bảo độ an toàn cao hơn là duy trì một danh mục độngkhóa công khai luôn sẵn sàng Việc duy trì và phân phối khóa được một tổ chức hay

cá nhân nào đó đáng tin cậy chịu trách nhiệm Kỹ thuật này bao gồm các thành phầnsau:

• Người quản lý duy trì một danh mục cho mỗi đối tượng tham gia trao đổigồm tên và khóa công khai

• Mỗi đối tượng tham gia đăng ký một khóa công khai với người quản lý danhmục khóa công khai Việc đăng ký phải được đảm bảo an toàn

• Mỗi đối tương tham gia có thể thay đổi khóa đang sử dụng bất cứ thời điểmnào, có thể do khóa đang sử dụng đã được dùng để gửi một lượng lớn dữ liệuhoặc khóa riêng tương ứng bị phát hiện

• Các đối tượng tham gia cũng có thể truy cập đến danh mục khóa bằng đườngđiện tử Trong trường hợp này, giao dịch giữa các đối tượng tham gia vàngười phân quyền phải đảm bảo an toàn và được xác thực

Hình 2.5 Danh mục khóa công khai

Danh mụcKhóaCông khai

A

B

PU b

PU a

Ngày đăng: 02/07/2017, 19:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Đặng Văn Cương (2003), Vấn đề an toàn của hệ mật mã khoá công khai, Luận văn thạc sĩ, Khoa công nghệ thông tin, Đại học công nghệ Sách, tạp chí
Tiêu đề: Vấn đềan toàn của hệ mật mã khoá công khai
Tác giả: Đặng Văn Cương
Năm: 2003
[2] Phan Đình Diệu, Lý thuyết mật mã và an toàn thông tin, Đại học quốc gia Hà Nội Sách, tạp chí
Tiêu đề: Lý thuyết mật mã và an toàn thông tin
[3] Đặng Thị Lan Hương (2008), Vấn đề an toàn thông tin trong thương mại điện tử, Luận văn đại học, Khoa công nghệ thông tin, Đại học công nghệ Sách, tạp chí
Tiêu đề: Vấn đề an toàn thông tin trong thương mại điệntử
Tác giả: Đặng Thị Lan Hương
Năm: 2008
[4] Vũ Th ành Nam (1999), Một số phương pháp m ã hóa, Luận văn Thạc sĩ, Viện Toán ứng dụng và Tin học, Đại học Bách khoa Hà nội Sách, tạp chí
Tiêu đề: Một số phương pháp mã hóa
Tác giả: Vũ Th ành Nam
Năm: 1999
[5] Trịnh Nhật Tiến, Giáo trình an toàn dữ liệu, Khoa công nghệ thông tin, Đại học quốc gia Hà Nội Sách, tạp chí
Tiêu đề: Giáo trình an toàn dữliệu
[9] D. J. Newman, Simple analytic proof of the prime number theorem, American Mathematical Monthly 87 (9): 693 – 696, 1980.[ 10 ] D.Bleichenbacher. Chosen ciphertext attacks against protocols based on the RSA encryption standard PKCS #1 Sách, tạp chí
Tiêu đề: Simple analytic proof of the prime number theorem", AmericanMathematical Monthly 87 (9): 693–696, 1980.[10] D.Bleichenbacher
[20] D.Boneh and G.Durfee. New results on cryptanalysis of low private exponent RSA. Preprint, 1998[13 ] J. Hastad. Solving simultaneous modular equation of low degree. SIAM J. of Computing, 1988[1 4 ] M. Wiener. Cryptanalysis of short RSA secret exponents. IEEE Transactions on Information Theory, 1990 Sách, tạp chí
Tiêu đề: New results on cryptanalysis of low private exponentRSA". Preprint, 1998[13] J. Hastad. "Solving simultaneous modular equation of low degree". SIAM J. ofComputing, 1988[14] M. Wiener. "Cryptanalysis of short RSA secret exponents

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Mô hình hệ thống mã hóa đối xứng - Tìm hiểu một số kỹ thuật tấn công hệ mật RSA
Hình 2.1 Mô hình hệ thống mã hóa đối xứng (Trang 17)
Hình 2.2. Sơ đồ mã hóa thông tin bằng hệ mật khóa công khai - Tìm hiểu một số kỹ thuật tấn công hệ mật RSA
Hình 2.2. Sơ đồ mã hóa thông tin bằng hệ mật khóa công khai (Trang 26)
Hình 2.3. Minh h ọa quá trình mã hóa khóa công khai RSA - Tìm hiểu một số kỹ thuật tấn công hệ mật RSA
Hình 2.3. Minh h ọa quá trình mã hóa khóa công khai RSA (Trang 33)
Hình 2.4. Thông báo khóa công khai - Tìm hiểu một số kỹ thuật tấn công hệ mật RSA
Hình 2.4. Thông báo khóa công khai (Trang 39)
Hình 2.6. Phân quyền khóa công khai - Tìm hiểu một số kỹ thuật tấn công hệ mật RSA
Hình 2.6. Phân quyền khóa công khai (Trang 41)
Hình 2.7. Trao đổi chứng chỉ khóa công khai - Tìm hiểu một số kỹ thuật tấn công hệ mật RSA
Hình 2.7. Trao đổi chứng chỉ khóa công khai (Trang 44)
Hình 2.8. Sử dụng mã hóa khóa công khai để trao đổi khóa phi ên - Tìm hiểu một số kỹ thuật tấn công hệ mật RSA
Hình 2.8. Sử dụng mã hóa khóa công khai để trao đổi khóa phi ên (Trang 46)
Hình 2.9. Giao thức trao đổi khóa Diffie - Hellman - Tìm hiểu một số kỹ thuật tấn công hệ mật RSA
Hình 2.9. Giao thức trao đổi khóa Diffie - Hellman (Trang 49)
Hình 3.1.Giao diện mã hóa và giải mã bằng hệ mật RSA - Tìm hiểu một số kỹ thuật tấn công hệ mật RSA
Hình 3.1. Giao diện mã hóa và giải mã bằng hệ mật RSA (Trang 79)
Hình 3.2. Giao diện sinh khóa 3.9.3.2. Giao diện Phương pháp tấn công RSA - Tìm hiểu một số kỹ thuật tấn công hệ mật RSA
Hình 3.2. Giao diện sinh khóa 3.9.3.2. Giao diện Phương pháp tấn công RSA (Trang 80)
Hình 3.3. Giao diện minh họa phương pháp tấn công RSA - Tìm hiểu một số kỹ thuật tấn công hệ mật RSA
Hình 3.3. Giao diện minh họa phương pháp tấn công RSA (Trang 80)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w