BÀI 16 H MÃ KHÓA CÔNG KHAI RSA

Một phần của tài liệu Lí thuyết thông tin BKHCM (Trang 31 - 34)

M thm t mã (, K, C) là hoàn hon u và chn u

BÀI 16 H MÃ KHÓA CÔNG KHAI RSA

16.1 Gi i thu t mã hóa và gi i mã RSA 16.2 an toàn c a RSA

H mã khóa công khai RSA do ba nhà nghiên c u Rivest, Shamir và Adleman đ xuát vào n m 1978. Vi c xây d ng nó đ t trên nên t ng các bài toán s h c mà đ c bi t là các bài toán v các s nguyên t l n.

16.1Gi i thu t mã hóa và gi i mã RSA

Quá trình mã hóa

Chúng ta s mã hóa t ng kh i kí t m t. M i kh i kí t có chi u dài m (kí t ). S m này s đ c l a ch n sao cho phù h p. N u v n b n ban đ u có chi u dài không là b i s c a m thì chúng ta s b sung thêm nhi u l n m t kí t X nào đó đ chi u dài này là b i s c a m.

Input:

- S t nhiên m là chi u dài c a kh i kí t c n mã hóa. - Kh i kí t w c n mã hóa có chi u dài m (kí t ).

- S nguyên n (n = pq v i p và q là hai s nguyên t đ l n, th ng l n h n s M

đ c tính bên d i).

- S t nhiên keđ l n sao cho, gcd(ke, φ(n)) = 1, đ ng th i t n t i s t nhiên kd th a

ke × kd ≡ 1 (mod φ(n)). Th ng ke đ c khuyên nên ch n là m t s nguyên t . - đây c p s (n, ke) chính là khóa công khai còn (n, kd) chính là khóa bí m t. Bí m t

đ c ch t s kd.

Output:

- Chu i m t mã c (là chu i các kí s ).

B c 1.

Bi u di n kh i kí t w thành m t s nguyên trong kho ng {1, 2, ..., n}. Thông

th ng cách bi u di n nh sau.

M i kí t c a w trong b ng ch cái (gi s là b ng ch cái latinh g m 26 kí t )

đ c bi u di n b ng m t s có hai ch s . Ch ng h n, A là 01, B là 02, …, Z là 26. K t qu chu i w đ c bi u di n thành m t chu i các kí s và có chi u dài là 2m (kí s ). G i chu i s này là N. Rõ ràng N có giá tr không v t quá giá tr c c đ i sau đây M = 2626…26 (m l n s 26) M = 26(100m - 1)/99 N < M Các s nguyên t p, q dùng đ tính n th ng l n h n s M này. p, q > M > N

Nh v y N s nguyên t cùng nhau v i p, q và d nhiên là nguyên t cùng nhau v i

n. B c 2. S t nhiên ke đ c ch n đ l n đ e k N > n v i đa s các s N trên.

Chu i m t mã c chính là chu i s có đ c thông qua phép toán sau.

D nhiên s c nh h n n và v i vi c ch n ke th a Nke > n thì c không th trùng v i e k N đ c. Quá trình gi i mã Input: - Chu i m t mã c (là chu i các kí s ). - S nguyên n đã cho gi i thu t mã hóa. - Khóa bí m t kd. Output: - Kh i kí t w ban đ u c n mã hóa. B c 1. Theo H qu 14.4 chúng ta có ( )ke kd N ≡ N (mod n) t c là d k c ≡ N (mod n) V y chu i N đ c tính b ng cách (v i N < n) N ckd (mod n) B c 2.

Chi u dài c a N s là 2m ho c 2m – 1 kí s . N u N dài 2m – 1 kí s thì thêm s 0

vào v trí đ u bên trái c a N (đ đ 2m kí s ). Tách t ng hai kí s m t t trái sang và bi n đ i thành kí t ch trong b ng ch cái đã cho ta đ c kh i kí t c n mã hóa ban đ u w.

Nh n xét

M u ch t c a h mã khóa công khai RSA n m ch cho dù bi t chu i m t mã c và khóa công khai ke, n u không bi t đ c khóa bí m t kd thì vi c tìm ra N là r t khó. Ta có ke

× kd ≡ 1 (mod φ(n)). V y đ tìm khóa kd chúng ta ph i bi t φ(n). Vi c tìm φ(n) d a vào n đã bi t không d h n so v i vi c phân tích n ra thành các th a s nguyên t , b i vì khi đã bi t

φ(n) thì chúng ta có th gi i ra p và q b ng m t h hai ph ng trình hai bi n.

n = pq

φ(n) = (p – 1) × (q – 1).

Khó đây n m ch chúng ta ph i làm vi c v i nh ng s nguyên r t r t l n. Ch ng h n b ng sau đây cho chúng ta th y đ ph c t p c a các thu t toán phân tích m t s nguyên

n ra th a s nguyên t b ng các thu t toán hi u qu nh t hi n nay trên m t máy tính có t c

đ x lý 1 t phép tính trong 1 giây. (Tham kh o t trang 5 và 6 sách s [5]) S ch s th p phân S phép tính bit Th i gian

50 1,4 × 1010 14 giây 75 9,0 × 1012 2,5 gi 100 2,3 × 1015 26 ngày 15 gi 200 1,2 × 1023 3,8 × 106 n m 300 1,5 × 1029 4,9 × 1012 n m 500 1,3 × 1039 4,2 × 1022 n m

16.2 an toàn c a RSA

N u p và q là các s nguyên t kho ng 100 ch s th p phân thì n có kho ng 200 ch s . Vi c phân tích n thành p và q nh b ng trên cho th y t n m t kho ng th i gian hàng tri u n m v i nh ng máy tính r t m nh.

Sau khi tìm ra h mã này, Rivest, Shamir và Adleman đã công b trên m t bài báo khoa h c đ ng MIT. Sau đó trên c t báo Martin Gardner’s c a t báo Scientific American, h có đ a ra l i thách th c b n đ c b khóa m t m u tin nh đã đ c mã hóa v i

n = 114381625757888867669235779976146612010218296721242362562561842

935706935245733897830597123563958705058989075147599290026879543541

e = 9007

M u tin

“first solver wins one hundred dollars”

xu t hi n trong d ng mã hóa v i A = 01, B = 02, …, Z = 26 và ch đ c gi i mã vào ngày 26/4/1994 b ng m t c g ng t ng l c mang tính qu c t (qua internet) v i vi c s d ng 1600 cái bao g m các tr m làm vi c (workstations), các máy c l n (mainframes) và các siêu máy tính (supercomputers) t n công trong vòng 8 tháng liên t c đ phân tích s nêu trên ra th a s nguyên t .

Th c t này cho th y r ng thu t toán RSA là r t an toàn, vì không m y khi có đi u ki n đ huy đ ng m t l c l ng tính toàn hùng h u nh th vào công vi c gi i mã m t m u tin.

Nh n xét

Gi i thu t mã hóa RSA m c dù r t an toàn nh ng t c đ mã hóa và gi i mã ch m, ch m h n gi i thu t DES nhi u l n (hàng ngàn l n). Vì v y ng i ta th ng k t h p hai ph ng pháp mã hóa DES và RSA theo cách sau:

1. Dùng DES đ mã hóa kh i v n b n.

2. Dùng RSA đ mã hóa khóa mà DES đã dùng đ mã hóa kh i v n b n.

S k t h p này tích h p đ c c u đi m nhanh chóng c a DES và u đi m an toàn c a RSA.

Các gi i thu t mã hóa DES và RSA còn đ c ng d ng vào r t nhi u v n đ khác c a vi c m t mã hóa ch ng h n nh vi c xác nh n ch th (xác nh n ng i g i v n b n đ tránh s gi m o) hay còn g i là ch ký đi n t . Tuy nhiên trong khuôn kh c a môn h c này không đ th i l ng cho phép chúng ta trình bày v n đ này. tìm hi u thêm b n đ c có th xem thêm các tài li u tham kh o.

Một phần của tài liệu Lí thuyết thông tin BKHCM (Trang 31 - 34)

Tải bản đầy đủ (PDF)

(34 trang)