1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 3 mật mã KHOá CÔNG KHAI

52 265 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 52
Dung lượng 1,25 MB

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

Nội dung

Các hệ mật thuộc loại nàyđược gọi là hệ khoá bí mật, nếu để lộ e thì làm cho hệ thống mất an toàn.k Nhược điểm của hệ mật này là nó yêu cầu phải có thông tin trước về khoá Kgiữa Alice và

Trang 1

Chương III - MậT Mã KHOá CÔNG KHAI.

3.1 gIớI THIệU Về MậT Mã KHOá CÔNG KHAI.

Trong mô hình mật mã cổ điển trước đây mà hiện nay đang được nghiên cứuAlice (người gửi) và Bob (người nhận) chọn một cách bí mật khoá K Sau đó dùng

K để tạo luật mã hoá e và luật giải mã k d Trong hệ mật này k d hoặc giống k ekhoặc dễ dàng nhận được từ nó (ví dụ trong hệ DES quá trình giải mã hoàn toàntương tự như quá trình mã nhưng thủ tục khoá ngược lại) Các hệ mật thuộc loại nàyđược gọi là hệ khoá bí mật, nếu để lộ e thì làm cho hệ thống mất an toàn.k

Nhược điểm của hệ mật này là nó yêu cầu phải có thông tin trước về khoá Kgiữa Alice và Bob qua một kênh an toàn trước khi gửi một bản mã bất kỳ Trên thực

tế điều này rất khó đảm bảo Chẳng hạn khi Alice và Bob ở cách xa nhau và họ chỉ

có thể liên lạc với nhau bằng thư tín điện tử (E.mail) Trong tình huống đó Alice vàBob không thể tạo một kênh bảo mật với giá phải chăng

ý tưởng xây dựng một hệ mật khoá công khai (hay dùng chung) là tìm một hệmật không có khả năng tính toán để xác định d khi biết k e Nếu thực hiện đượcknhư vậy thì quy tắc mã e có thể được công khai bằng cách công bố nó trong mộtk

danh bạ (bởi vậy nên có thuật ngữ hệ mật khoá công khai) Ưu điểm của hệ mật

khoá công khai là ở chỗ Alice (hoặc bất kỳ ai) có thể gửi một bản tin đã mã choBob (mà không cần thông tin trước về khoá mật) bằng cách dùng mật mã công khai

ý tưởng về một hệ mật khoá công khai được Diffie và Hellman đưa ra vào năm

1976 Còn việc hiện thực hoá nó thì do Rivesrt, Shamir và Adleman đưa ra lần đầutiên vào năm 1977, họ đã tạo nên hệ mật nổi tiếng RSA (sẽ được nghiên cứu trongchương này) Kể từ đó đã công bố một số hệ, độ mật của chúng dựa trên các bài tínhtoán khác nhau Trong đó, quan trọng nhất là các hệ mật khoá công khai sau:

Trang 2

- Hệ mật RSA:

Độ bảo mật của hệ RSA dựa trên độ khó của việc phân tích ra thừa số nguyênlớn Hệ này sẽ được mô tả trong phần 4.2

- Hệ mật xếp ba lô Merkle - Hellman:

Hệ này và các hệ liên quan dựa trên tính khó giải của bài toán tổng các tập con(bài toán này là bài toán NP đầy đủ - là một lớp khá lớn các bài toán không cógiải thuật được biết trong thời gian đa thức) Tuy nhiên tất cả các hệ mật xếp ba

lô khác nhau đều đã bị chứng tỏ là không mật (ngoại trừ hệ mật Chor-Rivest)

- Hệ mật trên các đường cong Elliptic:

Các hệ mật này là biến tướng của các hệ mật khác (chẳng hạn như hệ mậtElGamal), chúng làm việc trên các đường cong Elliptic chứ không phải là trêncác trường hữu hạn Hệ mật này đảm bảo độ mật với số khoá nhỏ hơn các hệmật khoá công khai khác

Một chú ý quan trọng là một hệ mật khoá công khai không bao giờ có thể đảmbảo được độ mật tuyệt đối (an toàn vô điều kiện) Sở dĩ như vậy vì đối phương khinghiên cứu một bản mã, y có thể mã lần lượt các bản tin rõ bằng luật mã hoá côngkhai e cho tới khi anh ta tìm được bản rõ duy nhất x đảm bảo k y=ek( )x Bản rõnày chính là kết quả giải mã của y Bởi vậy, ta chỉ nghiên cứu độ mật về mặt tính

Trang 3

Một khái niệm có ích khi nghiên cứu hệ mật khoá công khai là khái niệm vềhàm cửa sập một chiều Ta sẽ định nghĩa khái niệm này một cách không hình thức.Hàm mã khoá công khai e của Bob phải là một hàm dễ tính toán Song việck

tìm hàm ngược (hàm giải mã) rất khó khăn (đối với bất kỳ ai không phải là Bob).Đặc tính dễ tính toán hàm ngược thường được gọi là đặc tính một chiều Bởi vậyđiều kiện cần thiết là e phải là hàm một chiều.k

Các hàm một chiều đóng vai trò quan trọng trong mật mã học, chúng rất quantrọng trong các hệ mật khoá công khai và trong nhiều lĩnh vực khác Đáng tiếc làmặc dù có rất nhiều hàm được coi là hàm một chiều nhưng cho đến nay vẫn khôngtồn tại một hàm nào có thể chứng minh được là hàm một chiều

Sau đây là một ví dụ về một hàm được coi là hàm một chiều Giả sử n là tíchcủa hai số nguyên tố lớn p và q, giả sử b là một số nguyên dương Khi đó ta xácđịnh ánh xạ f :Zn →Zn là f( )x =xbmodn (với b và n đã được chọn thích hợp thìđây chính là hàm mã RSA, sau này ta sẽ nói nhiều hơn về nó)

Để xây dựng một hệ mật khoá công khai thì việc tìm được một hàm một chiềuvẫn chưa đủ Ta không muốn e là hàm một chiều đối với Bob vì anh ta phải cók

khả năng giải mã các bản tin nhận được một cách hiệu quả Điều cần thiết là Bobphải có một cửa sập chứa thông tin bí mật cho phép dễ dàng tìm hàm của e Nhưk

vậy Bob có thể giải mã một cách hữu hiệu vì anh ta có một hiểu biết tuyệt mật nào

đó về K Bởi vậy một hàm được gọi là cửa sập một chiều nếu nó là một hàm mộtchiều và nó trở nên dễ tính ngược nếu biết một cửa sập nhất định

Trang 4

(ii) Nếu a b và b c thì a c

(iii) Nếu a b và a cthì a ( bx + cy ) với ∀ x , y ∈ Ζ

(iv) Nếu a b và b a thì a = ± b

- Định nghĩa 3.2.2 (Thuật toán chia đối với các số nguyên)

Nếu a và b là các số nguyên với b ≥ 1

thì a = qb + r , 0 ≤ r < b

q và r là duy nhất

Phần dư của phép chia a và b được ký hiệu a mod b = r

Thương của phép chia a và b được ký hiệu a div b = q

Ta có =  = − b

ababmoda,

b

abdiv

a

Ví dụ: a = 73, b = 17.

5 17 mod 73 , 4 17 div

- Định nghĩa 3.2.3: Ước chung.

c là ước chung của a và b nếu c a & c b

- Định nghĩa 3.2.4: Ước chung lớn nhất (ƯCLN)

Số nguyên dương d là ƯCLN của các số nguyên a và b (Ký hiệud = ( a , b ) )nếu:

(i)d là ước chung của a và b

Trang 5

- Định nghĩa 3.2.5: Bội chung nhỏ nhất (BCNN)

Số nguyên dương d là BCNN của các số nguyên a và b (Ký hiệu

,a

6

18.1218

,12BCNN6

18,

- Định nghĩa 3.2.6:

Hai số nguyên dương a và b được gọi là nguyên tố cùng nhau nếu: ( a , b ) = 1

- Định nghĩa 3.2.7:

Số nguyên P ≥ 2được gọi là số nguyên tố nếu các ước dương của nó chỉ là 1

và P Ngược lại P được gọi là hợp số

- Định lý cơ bản của số học:

Với mỗi số nguyên r ≥ 2ta luôn phân tích được dưới dạng tích của luỹ thừacủa các số nguyên tố

k 2

k

e 2

Với n ≥ 2, hàm Φ ( ) n được xác định là số các số nguyên trong khoảng

[ ] 1 , n nguyên tố cùng nhau với n

Trang 6

1 1 p

1 1 p

1 1 n

n

n >

Φ

3.2.2 Các thuật toán trong Z.

Cho a và b là các số nguyên không âm và nhỏ hơn hoặc bằng n Cần chú ý rằng

số các bit trong biểu diễn nhị phân của n là [ ] lg n + 1 và số này xấp xỉ bằng lg n.

Số các phép toán bit đối với bốn phép toán cơ bản trên các số là cộng, trừ, nhân vàchia sử dụng các thuật toán kinh điển được tóm lược trên bảng sau Các kỹ thuậttinh tế hơn đối với các phép toán nhân và chia sẽ có độ phức tạp nhỏ hơn:

Phép toán Độ phức tạp bitCộng a + b 0 ( lg a + lg b ) = 0 ( ) lg n

Trừ a − b 0 ( lg a + lg b ) = 0 ( ) lg n

Nhân a b ( ( ) ( ) ) ( ( )2)

n lg 0 b lg a lg

Chia a = qb + r ( ( ) ( ) ) ( ( )2)

n lg 0 b lg a lg

Bảng 3.1: Độ phức tạp bit của các phép toán cơ bản trong Z

ƯCLN của 2 số nguyên a và b có thể được tính theo định lý sau:

- Định lý 3.2.2:

k 2

1

e k

e 2

e

p

a =  = ƒ ƒ  ƒ trong đó ei ≥ 0 , ƒi ≥ 0

Trang 7

và ( ) ( 1 1) ( 2 2) max(e k , k)

k ,

e max 2 , e max

p b , a

Ví dụ: Cho a = 4864 = 28 19 , b = 3458 = 2 7 13 19 Khi đó

( a , b ) ( 4864 , 3458 ) 2 7 13 19 442624 BCNN

38 19 2 3458 ,

4864 b

, a UCLN

- Thuật toán Euclide:

Tính UCLN của 2 số nguyên

Vào : Hai số nguyên không âm a và b với a > b

Ra: ƯCLN của a và b

(1)While b ≠ 0do

r b , b a , b mod a

(2)Return (a)

- Định lý 3.2.4:

Thuật toán trên có thời gian chạy chừng 0 ( ( lg n )2) các phép toán bit

Ví dụ: Sau đây là các bước chia của thuật toán trên khi tính:

0 38

2 76

38 114

5 646

76 646

2 1406

646 1406

2 3458

1406 3458

1 4864

38 3458

, 4864

Thuật toán trên có thể được mở rộng để không những chỉ tính được ƯCLN của

2 số nguyên a và b mà còn tính được các số nguyên x và y thoả mãn ax + by = d

Trang 8

- Thuật toán Euclide mở rộng:

Vào : Hai số nguyên không âm a và b với a ≥ b

Ra : d = UCLN ( ) a , b và các số nguyên x và y thoả mãn ax + by = d

Thuật toán trên có thời gian chạy cỡ 0 ( ( lg n )2) các phép toán bit

Ví dụ: Bảng 3 2 sau chỉ ra các bước của thuật toán trên với các giá trị vào4864

Trang 9

Ví dụ: 24 ≡9mod5 vì 24−9=3.5

7mod17

(3) Tính đối xứng : Nếu a ≡b(modn) thì b≡a(modn)

(4) Tính bắc cầu : Nếu a ≡b(modn) và b ≡c(modn) thì

a + ≡ 1+ 1 và a b ≡ a1 b1( mod n )

Lớp tương đương của một số nguyên a là tập các số nguyên đồng dư với amodulo n Từ các tính chất (2), (3) và (5) ở trên ta có thể thấy rằng đối với n cốđịnh, quan hệ đồng dư theo modulo n sẽ phân hoạch Z thành các lớp tương đương.Nếu a = qn + r với 0 ≤ r ≤ n thì a ≡r(modn)

Bởi vậy mỗi số nguyên a là đồng dư theo modulo n với một số nguyên duy nhấtnằm trong khoảng từ 0 tới n − 1, số này được gọi là thặng dư tối thiểu của

Ví du: Z25 ={0,1,,24} Trong Z25 ta có:

416

13+ = vì 13+16=29 ≡4(mod25)Tương tự 13.16 =8trong Z25.

- Định nghĩa 3.2.11 (Phần tử nghịch đảo).

Cho a∈Zn, Phần tử nghịch đảo (ngược theo phép nhân) của a mod nlà một

số nguyên x∈Zn sao cho: a x ≡ 1 ( mod n )

Trang 10

Nếu x tồn tại thì nó là duy nhất, a được gọi là khả nghịch Phần tử nghịch đảocủa a được ký hiệu là a−1.

2 2

1 1

nmoda

x

nmoda

x

sẽ có nghiệm duy nhất theo modulo n (n =n1.n2nk)

- Thuật toán Gausse.

Nghiệm x của hệ phương trình đồng dư trong định lý phần dư China có thểđươc tính bằng:

Nax

Trang 11

Các tính toán này có thể được thực hiện trong 0 ( ( ) lg n 2) các phép toán trênbit.

Ví dụ: Cặp phương trình đồng dư x ≡3(mod7) , x ≡7(mod13) có nghiệmduy nhất x ≡59(mod91)

- Định lý 3.2.9:

Nếu (n1,n2) =1 thì cặp phương trình đồng dư

(modn1) , x a(modn2)a

Cấp của Z*n là số các phần tử trong Z*n (ký hiệu Z*n )

Theo định nghĩa của hàm Phi-Euler ta thấy:

(1) Định lý Euler: Nếu a∈Z*n thì aΦ( )n ≡1(modn)

(2) Nếu n là tích của các số nguyên khác nhau và nếu r ≡s(modΦ( )n )thì

(modn)a

ar ≡ s đối với mọi số nguyên a Nói một cách khác khi làm việcvới modulo n thì các số mũ có thể được rút gọn theo modulo Φ( )n .

- Định lý 3.2.11: Cho p là một số nguyên tố:

(1) Định lý Ferma: Nếu ( )a,p =1 thì ap − 1 ≡1(modp)

Trang 12

(2) Nếu r ≡s(modp−1)thì ar ≡as (modp)đối với mọi số nguyên a Nóimột cách khác khi làm việc với modulo của một số nguyên tố p thì các luỹthừa có thể được rút gọn theo modulo p−1.

(3) Đặc biệt ap ≡a(modp) với mọi số nguyên a

Cho α∈Z*n Nếu cấp của α là Φ( )n thì α được gọi là phần tử sinh hay phần

tử nguyên thuỷ của Z*n Nếu Z*n có một phần tử sinh thì Z*n được gọi là cyclic

- Các tính chất của các phần tử sinh của Z*n

(1) Z*n có phần tử sinh nếu và chỉ nếu n =2,4,pk hoặc là 2pk, trong đó p làmột số nguyên tố lẻ và k≥1 Đặc biệt, nếu p là một số nguyên tố thì Z*n cóphần tử sinh

(2) Nếu α là một phần tử sinh của Z*nthì:

Trang 13

( )n }i

0nmod{

Z*n = αi ≤ ≤Φ −

(3) Giả sử rằng α là một phần tử sinh của Z*n khi đó b =αi modncũng làmột phần tử sinh của Z*n nếu và chỉ nếu ( ,iΦ( )n ) =1 Từ đó ta rút ra rằngnếu Z*n là cyclic thì số các phần tử sinh là Φ(Φ( )n )

(4) α ∈ Z*n là một phần tử sinh của Z*n nếu và chỉ nếu αΦ( )n / p ≠ 1 ( mod n )

đối với mỗi nguyên tố p của Φ( )n

Ví dụ: Z*21 không là cyclic vì nó không chứa một phần tử có cấp Φ( )21 =12(Chú ý rằng 21 không thoả mãn điều kiện (1) ở trên)

* 25

Z là cyclic và có một phần tử sinh α = 2

- Định nghĩa 3.2.18:

Cho a ∈ Z*n, a được gọi là thặng dư bậc hai modulo n (hay bình phương củamodulo n) nếu tồn tại x ∈ Z*n sao cho x2 ≡ a ( mod n ) Nếu không tồn tại x nhưvậy thì a được gọi là thặng dư không bậc hai mod n Tập tất cả các thặng dư bậchai modulo n được ký hiệu là Qn, còn tập tất cả các thặng dư không bậc hai được

ký hiệu là Qn Cần chú ý rằng theo định nghĩa 0 ∉ Z*n Bởi vậy 0 ∉ Qnvà

n

Q

0 ∉

- Định lý 3.2.12:

Cho p là một số nguyên tố lẻ và α là một phần tử sinh của Z*p Khi đó a ∈ Z*p

là một thặng dư bậc hai modulo p nếu và chỉ nếu a =αi modp, trong đó i là một

số nguyên chẵn Từ đó rút ra rằng ( )

2

1p

Qp = −

2

1p

Qp = −

, tức là mộtnửa số phần tử trong Z*p là các thặng dư bậc hai và nửa còn lại thặng dư không bậchai

Trang 14

Ví dụ: α = 6 là một phần tử sinh của Z13* Các luỹ thừa của α được liệt kê ởbảng sau:

.Q

Qn = q p = − −

4

1q1p3

121 là 11, 74, 101, 151, 164, 214, 241 và 304

3.2.4 Các thuật toán trong Zn.

Trang 15

Cho n là một số nguyên dương Các phần tử của Znsẽ được biểu thị bởi các sốnguyên Q21 ={0,1,2, ,n−1}.

− +

<

+ +

= +

n b a r

b a

n b a b

a n mod b

a

Bởi vậyphép cộng (và trừ ) theo modulo có thể thực hiện được mà không cầnphép chia dai Phép nhân modulo của a và b có thể được thực hiện bằng cách nhâncác số nguyên thông thường rồi lấy phần dư của kết quả sau khi chia cho n Cácphần tử nghịch đảo trong Zn có thể được tính bằng cách dùng thuật toán Euclide

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

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

Vào : a ∈ Zn

Ra: a− 1mod 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

d ny

ax + = trong đó d = ( ) a , n

(2) Nếu d > 1 thì a− 1mod n không tồn tại Ngược lại return ( ) x

Phép luỹ thừa theo modulo có thể được thực hiện có hiệu quả bằng thuật toánnhân và bình phương có lặp Đây là một thuật toán rất quan trọng trong nhiềuthủ tục mật mã Cho biểu diễn nhị phân của k là:

2 k 2 t

0 i

i k

=

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

Vào : a ∈ Znvà số nguyên k , ( 0 ≤ k < n ) có biểu diễn nhị phân:

=

0 i

i

i2 k k

Ra: ak mod n

Trang 16

Ví dụ: Bảng 3.4 sau chỉ ra các bước tính toán 5596mod 1234 = 1013

Trừ modulo a − b 0 ( ) lg n

Nhân modulo a b 0 ( ( ) lg n 2)

Nghịch đảo modulo a− 1mod n 0 ( ( ) lg n 2)

Luỹ thừa modulo ak mod n , k < n 0 ( ( ) lg n 3)

Bảng 3.5: Độ phức tạp bit của các phép toán cơ bản trong Zn

3.2.5 Các ký hiệu Legendre và Jacobi.

Ký hiệu Legendre là một công cụ hữu ích để xem xét liệu một số nguyên a có làmột thặng dư bậc hai theo modulo của một số nguyên tố p hay không?

3.2.5.1 Định nghĩa 1.20:

Trang 17

Cho p là một số nguyên tố lẻ và a là một số nguyên Ký hiệu legendre 

được xác định như sau:

Qa1

ap0

pa

3.2.5.2 Các tính chất của ký hiệu Legendre.

Cho p là một số nguyên tố lẻ và a , b ∈ Z Khi đó ký hiệu Legendre có cáctính chất sau:

a p

b a

Bởi vậy nếu a ∈ Z*p thì 1

a

(4) ( ) (p2 1)/ 8

1 p

p

q q

p   =     − − −



Trang 18

.Dấu hiệu Jacobi là tổng quát hoá của ký hiệu Legendre đối với các số nguyên

lẻ n không nhất thiết là một số nguyên tố

3.2.5.3 Định nghĩa 3.2.21:

Cho n ≥ 3 là các số nguyên tố lẻ có phân tích 1 2 e k

k

e 2

k 2

a p

a n

3.2.5.4 Các tính chất của ký hiệu Jacobi.

Cho n ≥ 3 là các số nguyên tố lẻ a , b ∈ Z Khi đó ký hiệu Jacobi có các tínhchất sau:

a n

a n

a

Trang 19

n n

1

e 1

e

1

1 a

a mod n n

2 n

a n

2 n

3.2.5.5 Thuật toán tính toán ký hiệu Jacobi (và ký hiệu Legendre)

Jacobi ( ) a , n

Vào : Số nguyên lẻ n ≥ 3 số nguyên a , ( 0 ≤ a ≤ n )

Ra: Ký hiệu Jacobi 

Trang 20

(6) Đặt r1 ← n mod a1

(7) Return ( s JACOBI ( n1, a1) )

Thuật toán trên có thời gian chạy chừng 0 ( ( ) lg n 2 ) các phép toán bit

3.2.5.6 Nhận xét (tìm các thặng dư bậc hai theo modulo của số nguyên tố p)

Cho p là một số nguyên tố lẻ Mặc dù đã biết rằng một nửa các phần tử trong

*

p

Z là các thặng dư không bậc hai theo modulo p nhưng không có một thuật toánxác định theo thời gian đa thức nào được biết để tìm

Một thuật toán ngẫu nhiên tìm một thặng dư không bậc hai là chọn ngẫu nhiên

các số nguyên a ∈ Z*p cho tới khi số đó thoả mãn 1

3.2.5.7 Ví dụ tính toán ký hiệu Jacobi.

Cho a = 158 và n = 235 Thuật toán trên tính 

79 77

79

77 1

79

235 1

235

79 235

2 235

158

4 / 78 76

4 / 234 78

Trang 21

Khác với ký hiệu Legendre, ký hiệu Jacobi 

một thặng dư bậc 2 theo modulo n hay không Sự thực là nếu a ∈ Qnthì 1

Trang 22

4 mod 3 p

,

5

Q ~n = Bốn căn bậc 2 của a = 4 là 2, 5, 16 và 19, trong đó chỉ có 16

là cũng nằmg trong Qn Bởi vậy 16 là căn bậc 2 chính của 4 mod 21

3.2.7 Bài toán logarit rời rạc.

Giả sử cho Zp là một trường hữu hạn với p là một nguyên tố lớn.

Cho g là phần tử sinh của nhóm nhân ,Z*p tức là với một phần tử a ≠0 bất kỳ

Z ta có thể tìm được một số nguyên tố x duy nhất thỏa mãn:

Trang 23

log2 18 1 13 2 16 14 6 3 8 17 12 15 5 7 11 4 10 9

Từ bảng trên ta có: 213 ≡ 3 mod 19

Nhìn chung đây là một bài toán rất khó khi p đủ lớn (chẳng hạn p≈10200).Khi đó ngay cả với các máy tính cực mạnh ta cũng phải chịu bó tay Tuy nhiên, trênthực tế bài toán này chỉ thực sự khó khi p − 1không phải là tích của các số nguyên

tố nhỏ Nói chung bài toán logarit rời rạc trên trường hữu hạn GF ( ) p có độ phứcctạp lớn hơn so với trên GF ( ) 2m

3.3 hệ mật rsa.

Tóm lược: Mỗi đầu cần tạo một khoá công khai và một khóa riêng tương ứngtheo các bước sau:

(1) Tạo 2 số nguyên tố lớn ngẫu nhiên và khác nhau p và q p và q có độ lớnxấp xỉ nhau

(2) Tính n=p.q và Φ( ) (n = p−1) (q−1).

(3) Chọn một số nguyên ngẫu nhiên e, 1<e<Φ, sao cho (e,Φ) =1

(4) Sử dụng thuật toán Euclide mở rộng để tính một số nguyên d duy nhất,

Các số nguyên d và e trong thuật toán tạo khoá RSA được gọi là số mũ mã hoá

và số mũ giải mã Số n được gọi là modulus

Trang 24

3.3.3.1. Mã hoá: B phải thực hiện:

(1) Thu nhận khoá công khai ( )n,e của A.

(2) Biểu diễn bản tin dưới dạng một số nguyên m trong khoảng [0,n−1]

(3) Tính c=me modn

(4) Gửi bản mã c cho A

4.3.3.2 Giải mã: Khôi phục bản rõ m từ c A phải thực hiện phép tính sau bằng

cách dùng khoá riêng m =cd modn

Chứng minh hoạt động giải mã:

Vì ed ≡1(modΦ) nên luôn tồn tại một số nguyên k sao cho ed =1+kΦ Bâygiờ nếu (m,p) =1 theo định lý Ferma ta có:mp−1 ≡1(modp) Luỹ thừa cả hai vếcủa đồng dư thức trên với số mũ k(q−1) và rồi nhân cả hai vế với m ta có:

Bằng lập luận tương tự ta lại có: med ≡m(modq)

Cuối cùng vì p và q là các số nguyên tố khác nhau nên med ≡m(modn) và bởivậy cd ≡( )me d ≡m(modn)

Trang 25

Để mã hoá thông báo m = 5234673, B sử dụng thuật toán lấy luỹ thừa theomodulo để tính.

36505026012707

mod5234673

nmodm

mã nhanh hơn) Tuy nhiên, nếu p và q được chọn ngẫu nhiên thì UCLN(p−1,q−1)

sẽ khá nhỏ và bởi vậy Φ và λ sẽ là các số có kích thước xấp xỉ

Giả sử rằng cặp khóa công khai là ( ) ( e , n = 17 , 35 )

Giả sử thông báo có giá trị bằng 8

Ta có 817 ≡ 8 mod 35

Như vậy mã hóa của thông báo vẫn là thông báo ban đầu Nói một cách khácvới khóa mã là 17 thì thông tin không được che dấu Rõ ràng là phải tránh được tìnhtrạng này định lý sau cho ta tính được số bản tin không thể che dấu được với mộtlựa chọn cho trước của ( ) e , n

Trang 26

Ta có thể viết lại các phương trình trên như sau:

pmod1

Me−1≡ hoặc Me−1≡0modp

qmod1

Me−1≡ hoặc Me−1≡0modqChú ý rằng phương trình đồng dư Me−1≡0modp chỉ có một nghiệm tương tựvới q ta có được kết quả của định lý

- Ví dụ: n = 35

Giả sử e = 3 ta có ( 1 + UCLN ( ) 2 , 4 ) ( 1 + UCLN ( ) 2 , 6 ) = 9

Các thông báo không thể che dấu được là 9 thông báo sau:

{ 0 , 1 , 6 , 14 , 15 , 20 , 21 , 29 , 34 }

Giả sử e = 17 ta có ( 1 + UCLN ( ) 6 , 4 ) ( 1 + UCLN ( 16 , 6 ) ) = 15

Các thông báo không thể che dấu được là 15 thông báo sau:

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

Giả sử p = 2 p ' + 1 và q = 2 q ' + 1 trong đó p ' và q ' là các số nguyên tố Khiđó:

( e 1 , 2 p ' ) 1 ; 2 UCLN − = hoặc p 'Nếu UCLN ( e − 1 , 2 p ' ) không phải là p ' và UCLN ( e − 1 , 2 q ' ) không phải là'

q thì số thông báo không thể che dấu chỉ nhiều nhất là 9.

Nếu UCLN ( e − 1 , 2 p ' ) = p ' thì số các thông báo không thể che dấu tối thiểu là

( p ' 1 )

2 + Tuy nhiên xác suất để xảy ra điều này là rất nhỏ ( b»ng 1 p ' )

3.4 hệ mật rabin

Tóm lược: Mỗi đầu tạo một khoá công khai và một khoá bí mật tương ứng theocác bước sau:

(1) Tạo 2 số nguyên tố lớn, ngẫu nhiên và phân biệt p và q có kích thước xấp xỉnhau

(2) Tính n =p.q.

(3) Khoá công khai là n, khoá bí mật là các cặp số (p, q)

3.4.2.1 Mã hoá: B phải thực hiện các bước sau:

Ngày đăng: 04/10/2017, 08:58

TỪ KHÓA LIÊN QUAN

w