HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Lê Văn Trung
TÌM HIẾU MOT SO PHƯƠNG PHÁP THÁM MÃ HE MAT RSA UNG DUNG TRONG BAO MAT DU LIEU
Chuyén nganh: Khoa hoc may tinh
Mã số: 60.48.01.01
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2015
Trang 2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: Tiến sĩ Nguyễn Ngọc Cương
Phản biện Ï: C00000 201212 ng ng n nh nh nh na
Phản biện 2: 000202212 2n n2 ng HT ng nh nh cv nà căn
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chínhViễn thông
Vào lúc: giỜ ngày thang năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3MỞ ĐẦU
Trong thời đại hiện nay, công nghệ thông tin có vai trò quan trọng đối với tất cả các lĩnh vực của đời sông xã hội Cùng với sự phát triển nó là tốc độ phát triển mạnh mẽ của Internet va các phần mềm ứng dụng, càng làm tăng nguy cơ bị đánh cắp thông tin Do đó, bài toán đảm bảo an ninh mạng, bảo mật dữ liệu trở nên cấp bách và cần thiết cần được giải quyết.
Có nhiều phương pháp khác nhau dé đảm cho thông tin được an toàn Song sử dụng các hệ mật mã dé bảo mật dir liệu là một phương pháp được sử dụng phô biến Day là một phương
pháp đảm bảo tính riêng tư và cung cấp cơ chế xác thực của dữ liệu số Trong đó, hệ mật mã
khóa công khai RSA được phát triển và ứng dụng phổ biến trong thương mại điện tử, sử dung trong tạo khóa và xác thực của mail, truy cập từ xa; là hạt nhân của hệ thống thanh toán điện tử,
và được ứng dụng trong lĩnh vực nơi mà an toàn thông tin được đòi hỏi.
Chính vì RSA được sử dụng phổ biến và có độ an toàn cao, mà đã có nhiều sự quan tâm, các cuộc tấn công nhằm phá vỡ sự an toan của nó Vì vậy việc đánh giá độ an toàn của
của hệ mật RSA là cần thiết Trong thực thế, có một số phương pháp khác nhau để đánh giá
độ an toàn của RSA, như Entropy của Shannon, nhưng phương pháp phân tích trực tiếp bản
mã khi không có khóa mã trong tay ma người ta thường gọi là thám mã (Cryptanalysis) là
tốt nhất và trực quan nhất.
Hiện nay, thám mã cũng đã được công khai hóa và là một lĩnh vực được quan tâm
nghiên cứu; đã có một số công trình khoa học nghiên cứu về vấn đề này, tuy nhiên việc đưa ra hệ quy trình thám mã và chương trình thám mã vẫn ở mức độ hẹp và khó khăn trong ứng
dụng thực tế.
Xuất phát từ thực tế đó, để góp phần tăng độ an toàn cho các hệ mật mã hiện đại nhằm bảo vệ an ninh thông tin trong tình hình mới, em chọn và nghiên cứu đề tài “Tim hiểu một số phương pháp thám mã hệ mật RSA ứng dung trong bảo mật dữ liệu ”, dựa trên kết quả chứng minh công thức tính số điểm bất động cấp n của hệ mật RSA đề đưa ra một số yêu cầu về chọn tham số, số mũ mã hóa dé chống thám mã hệ RSA Đây là yếu tố cơ bản tạo nên sự an toàn cho hệ RSA trước tấn công mã hóa liên tiếp.
Trong khuôn khổ đề tài được giao, luận văn được trình bày trong 4 chương Có phần mở đầu, phần kết luận, mục lục, tài liệu tham khảo Các nội dung cơ bản được trình bày như sau:
Trang 4Chương 1: “Tổng quan về mã hóa công khai mã thám”, chương này tập trung trình
bày các khái niệm mã hóa, các hệ mật mã, quá trình mã hóa và giải mã hệ mật RSA, thám
mã và quy trình đề tiến hành thám mã.
Chương 2: “Các phương pháp thám mã RSA”, chương này tìm hiểu về độ an toàn
của hệ mật mã, một số điểm yếu của hệ mật RSA, tìm hiểu một số phương pháp thắm mã
như: các tấn công cơ bản - modul chung, tấn công số vào số mũ công khai hoặc số mũ bí mật nhỏ, giao thức công chứng, Qua đó đánh giá kết quả của các phương pháp thám mã;
mô tả bài toán và đưa ra thuật toán thám mã đối với hệ mật RSA sử dụng modul chung.
Chương 3: “Điểm bat động cấp n của hệ mật RSA và ứng dụng trong bảo mật dữ
liệu” Chương này bao gồm phép chứng minh công thức tính số điểm bất động cấp n của hệ RSA và từ công thức trên giải thích một yêu cầu về tham số p, q, đưa ra cách chọn số mũ mã hoá d, e không an toàn có thé lợi dung dé tan công thám mã.
Chương 4: “Tu nghiệm chương trình thảm mã hệ mật RSA sử dụng modul n
chung” Trên cơ sở lý thuyết đã được trình bay ở các chương trước, đặc biệt ở Chương 2 dé
xây dựng và cài đặt chương trình thử nghiệm thám mã hệ mật mã RSA sử dụng thuật toán
thám mã đối với hệ mật RSA sử dụng modul chung.
Trang 5CHƯƠNG 1 - TONG QUAN VE MÃ HOA CÔNG KHAI
MÃ THÁM
1.1 Giới thiệu
Mật mã đã được con người sử dụng từ lâu đời Các hình thức mật mã sơ khai đã được
tìm thấy khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ dai Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi ở khắp nơi trên thế giới dé giữ bi mat trong việc giao lưu thông tin trong nhiều lĩnh vực hoạt động giữa con người và các quốc gia,
đặc biệt trong các lĩnh vực quân sự, chính tri, ngoại giao Đề thực hiện được một phép mật
mã, ta còn cần có một thuật toan biến bản rõ cùng với khóa mật mã thành bản mã và một thuật toán ngược lại biến bản mã cùng với khóa mật mã thành bản rõ Các thuật toán đó
được gọi tương ứng là thuật toán lập mã và thuật toán giải mã Trong thực tiễn, có những
hoạt động ngược lại với hoạt động bảo mật là khám phá bí mật từ các bản mã “lây trộm”
được, hoạt động này thường được gọi là phá khóa hay mã thám.1.2 Các khái niệm cơ bản
1.2.1 Mật mã
Mật mã (Cryptology) là tập hợp mọi phương pháp (hoặc quy tắc) biến đổi nào đó nhằm chuyên các thông báo (message) dưới dạng nhận thức được nội dung (như chữ viết, tiếng nói, hình vẽ, hình ảnh ) thành dạng bí mật mà những người ngoài cuộc không hiểu
được nội dung nếu họ không biết được phương pháp (hoặc quy tắc) biến đổi nó [2, tr.6] 1.2.2 Mật mã học
Mật mã học (Cryptography) là khoa học nghiên cứu cách ghi bí mật thông tin nhằm
biến bản tin rõ thành các bản mã.
1.2.3 Bản rõ
Bản rõ (Plain text) là thông điệp, đữ liệu “gốc”, dạng “tường minh” dạng ban đầu của người phát hành thông điệp tạo ra Bản rõ có thé tồn tại đưới dạng chữ viết, tiếng nói, hình vẽ, biểu bảng tương ứng ta sẽ có khái niệm mã ký tự, mã thoại, mã fax, mã dữ liệu.
1.2.4 Bản mã
Bản mã (Cipher text) là thông điệp dữ liệu đã được biến đổi theo một quy tắc nào đó thành một dạng khác (dạng “ân tàng”) mà chỉ những người nắm được quy tắc biến đổi ngược trở thành plaintext thì mới hiểu được nội dung thông điệp.
Trang 61.2.5 Mã hóa
Mã hóa (Encryption) là quá trình biến đổi thông tin từ dạng ban đầu (dạng tường minh) thành thông điệp dang ấn tàng với mục dich giữ bí mật thông tin đó.
1.2.6 Giải mã
Giải mã (Decryption) là quá trình ngược lại với mã hóa, khôi phục lại những thông tin
dạng ban đầu từ thông tin ở dạng đã được mã hóa.
+ Đối với mỗi keK có một quy tắc mã ex: P -> C và một quy tắc giải mã tương ứng
deD Mỗi ex: P -> C và dụ: C -> P là những hàm mà: dx(ex(x)) = x với mọi bản rõ xeP.
Hệ mật mã hiện đại cần đáp ứng được những yêu cầu sau:
- Tính bảo mật (Confidentiality).- Tinh xác thực (Authentication).
- Tính toàn ven (Integrity).
- Tính không thể chối bỏ (Non-repudation).
1.3 Phân loại các hệ mật mã
Hiện nay, có nhiều hệ thống mật mã đã được thiết kế và ứng dụng Tuy nhiên, nếu lấy khóa mật mã làm tiêu chuẩn dé phân loại các hệ mật mã thì chia thành hai loại là mã hóa
đối xứng và mã hóa bat đối xứng.
1.3.1 Mã hóa đối xứng
Là thuật toán mà tại đó khóa mã hóa có thể tính toán ra được từ khóa giải mã Trong rất nhiều trường hợp, khóa mã hóa và khóa giải mã là giống nhau.
1.3.2 Mã hóa bắt đối xứng
Là hệ mật mã bao gồm tập hợp các phép biến đổi mã hóa {Ee} và một tập hợp các phép biến đổi giải mã {Dd} được gọi là mật mã khóa công khai hay mật mã bat đối xứng nếu
với mỗi cặp khóa (e, đ) trong đó khóa mã hóa e được gọi là khóa công khai (có giá trị mà ai
Trang 7cũng biết), khóa giải mã d được gọi là khóa bí mật hay khóa riêng Hệ mật này phải đảm bảo
an toàn để không có khả năng tính được d từ e.
1.4 Tiêu chuẩn đánh giá hệ mật mã
Đề đánh giá một hệ mật mã người ta thường đánh giá thông qua các tính chất sau: độ an toàn, tốc độ mã và giải mã, phân phối khóa.
1.5 Hệ mật mã RSA
Hệ mật mã RSA do Rivest, Shamir và Adleman tìm ra, đã được công bó lần đầu tiên
vào thang 8 năm 1977 trên tạp chi Scientific American Hệ mật mã RSA được sử dụng rộng
rãi trong thực tiễn đặc biệt cho mục đích bảo mật và xác thực đữ liệu số Tính bảo mật và an
toàn của chúng được bảo dam bang độ phức tạp của một bài toán số học nổi tiếng là bài toán
phân tích số thành các thừa số nguyên tố Hệ mật mã RSA được mô tả như sau:
1.5.1 Mô tả hệ mật RSA
Sơ đồ chung của hệ mật mã khóa công khai được cho bởi
S=(P,C,K,E,D) (1.1)
trong đó P là tập ký tự bản rõ, C là tập ký tự bản mã, K là tập các khóa k, mỗi khóa k gồm có hai thành phan k= (k’, k”), k’ là khóa công khai dành cho việc lập mã, k” là khóa bí
mật dành cho việc giải mã Với mỗi ky tự bản rõ xe”, thuật toán lập mã E cho ta ký tựtương ứng y=E(k',x)eC, và với mỗi ký tự mã y thuật toán giải mã D sẽ cho ta lại ký tự
bản rõ x:D(k",y)=(k",E(k'.x))=x.
Để xây dựng một hệ mật mã khóa công khai RSA, ta chọn trước một số nguyên n=pq là tích của hai số nguyên tố lớn, chọn một số e(0<e<¢(n)) sao cho
gcd(e,Ø(n)) =1, trong đó Ø(») =(4—1).(p—1) và tính số d sao cho ed = 1(mod ¢(n))
Mỗi cặp khóa k =(k',k"), với k’=(n, e) va k”= d sẽ là một cặp khóa của hệ mật mã RSA cụ thé cho một người tham gia.
Như vậy, sơ đồ chung của hệ mật mã RSA được định nghĩa bởi danh sách (1.1),
trong đó:
P=C=Z,, trong đó n là một số Blun, tức là tích của hai số nguyên tố;
K ={k=(k'k"):k'=(n,e),k"=d,ged(e,g(n))=1ed =1(mod(đ(n)))}:
E và P được xác định bởi:
Trang 8E(k',x)=x° modn, Vx € PD(K",y)= y“ modn, Vy €C
Dé chứng tỏ định nghĩa trên là hop thức, ta phải chứng minh rang với mọi cặp khóa k=(kk"), và VxeP, ta đều có D(k",E(k',x))=x
Tính n = p.q
Tính ¢(n) = (p-1)(q-1)
| Khóa công khai |
Chon e ngẫu nhiên k’=fen} , °
0<e<(n),e#¢(n) C=M mod n
l Khóa bí mật
Tính l
d=e 'mod ¢(n) | # =sm — | M=C! modn
Hình 1.2: Sơ đồ biểu diễn thuật toán mã hóa RSA
1.5.3 Độ an toàn của hệ mật RSA
Độ an toàn của hệ RSA được dựa trên giả thiết ex(x) = x mod ø là hàm một chiều.
Cách tan công dé thay nhất đối với hệ mật mã này là thám mã có gắng phân tích n ra các thừa số nguyên tố.
Vì thế dé hệ RSA được coi là an toàn thì nhất thiết n = p.g phải là một số đủ lớn dé việc phân tích nó sẽ không có khả năng về mặt tính toán.
1.6 Thám mã
1.6.1 Khai niệm
Thám mã là quá trình khôi phục lại bản rõ hoặc khóa khi chỉ có bản mã tương ứng cho
trước (không biết khóa và quy tắc mã/dịch) gọi là thám mã Người làm công tác thám mã được
gọi là người mã thám (Cryptanalysis) hay gọi là mã thám viên [2, tr.9].
Đề thám mã được các bản mã truyền thống, người thám mã phải nghiên cứu các đặc trưng
cơ bản của bản rõ: Tần số (Frequency), Sự trùng lặp, Văn phong (Quy luật hành văn trong văn bản), Quy luật tình huống.
Trang 91.6.2 Quy trình tiễn hành thám mã
Khi nhận được bản mã, người thắm mã cần thực hiện một số bước cơ bản sau:
Bước 1: Phan loại ban mã
Sau khi nhận được một số bức điện mã, các nhà phân tích mật mã phân loại những bức điện mã theo loại mã pháp, loại khóa mã.
Bước 2: Xác định mã pháp
Sau khi hoàn thành bước 1, tiến hành xác định phương pháp mã dịch tương ứng với từng lớp cụ thể Bước này bao gồm các công việc sau đây:
- Tính tần số: tính tần số đơn; tần số bộ đôi móc xích; tần số bộ đôi thường; tần số bộ 3, 4, 5
Giả sử đã xác định được mã pháp tại bước thứ 2 trên đây, nay chuyên sang nghiên
cứu, phân tích bản mã (thám mã) Bước này cũng có hai công đoạn:
- Thám mã trực tiếp: Thám mã thủ công, Thám mã có sự trợ giúp của máy tính.
- Xây dựng phương pháp thám mã: phương pháp phân tích, phương pháp “từ phỏngchừng”.
1.7 Kết luận
Ở chương này trình bay những khái niệm cơ bản về hai hệ mật mã đối xứng và mật mã
công khai, đặc biệt trình bày về quá trình lập mã và giải mã của hệ mật mã RSA, những kiến thức cơ bản về thám mã và các bước tiễn hành thám mã Nội dung trình bày ở Chương 1 là cơ
sở lý thuyết co bản dé vận dụng vào Chương 2, Chương 3 và Chương 4 trong luận văn.
Trang 10CHUONG 2: CAC PHUONG PHAP THAM MA RSA
2.1 Độ an toàn của hệ mat mã
Tính an toàn của một hệ thống mật mã phụ thuộc vào độ khó cua bai toán thám mã
khi sử dụng hệ mật đó.
2.1.1 An toàn vô điều kiện
Hệ an toàn vô điều kiện, nếu độ bat định về bản rõ sau khi người thám mã có được cả thông tin (về bản mã) bằng độ bat định về bản rõ trước đó.
2.1.2 An toàn được chứng minh
Một hệ thống mật mã được xem là có độ an toàn được chứng minh nếu ta có thể chứng minh được bài toán thám mã đối với hệ thống đó “khó tương đương” với một bài toán khó đã biết.
2.1.3 An toàn tính toán
Hệ mật mã được xem là an toàn về mặt tính toán, nếu mọi phương pháp thám mã đã
biết đều đòi hỏi một nguồn năng lực tính toán vượt quá mọi khả năng (kê cả phương tiện
thiết bị máy móc) tính toán của một người thám mã.
2.2 Các dạng thám mã
2.2.1 Tham mã dạng 1: Tìm cách xác định khóa bí mật
Trường hợp 1: Thám mã chỉ biết bản mã
Người thám mã chỉ biết các bản mã ci= ex(m), ,ex(m;) mà không biết bản rõ tương ứng
với những ban mã đó cũng như khóa giải mã Anh ta có gắng tìm khóa giải mã, nếu không cùng
can tim các bản rõ mi mo mi.
Giải pháp phòng tránh: Chon số nguyên tố p, q lớn, dé việc phân tích n thành tích hai thừa số nguyên tố là khó có thé thực hiện được trong thời gian thực.
Trường hợp 2: Thám mã khi các cặp rõ/mã đã biết.
Người thám mã biết các bản mã c,c; c, như trên, nhưng cũng biết các bản rõ tương ứng mm, m, Anh ta cô gang tìm khóa giải mã d, nếu không thì cố gắng phỏng đoán bản rõ m,,, từ
bản mã mới c,,, =e, (m,.,) đã được mã hóa cùng với khóa b.
Giải pháp phòng tránh: Sử dụng khóa khác nhau ở mỗi lần mã hóa.
Trường hợp 3: Thám mã với bản rõ lựa chọn
Người thám mã được quyên truy nhập tạm thời cơ chế mã hóa, nên có thé chọn các ban rõ mm, m, và có được các bản mã tương Ứng c, =e, (m,).c; =e, (m,) c, =e,(m,), từ đó
Trang 11anh ta sẽ phỏng đoán khóa giải mã d và có thé tìm được bản rõ m,,, từ một vài bản mã mới
Ca, =e, (m,,,) đã được mã hóa bởi khóa lập mã e.
Giải pháp phòng tránh: Sử dụng khóa khác nhau ở mỗi lần mã hóa.
Trường hợp 4: Thám mã với bản mã lựa chọn
Người thám mã được quyền truy cập tạm thời vào cơ chế giải mã, nên từ các bản mã
c,c; c, anh ta nhận được các bản rõ tương ứng mm, m, Từ đó anh ta phỏng đoán khóa giải
mã d và có thé tìm được bản rõ m,,, từ một vài bản mã mới c,,, =e, (m,,,) cũng được mã hóa
Giả sử có hai người tham gia A và B cùng sử dụng một modul chung n trong khóa
công khai riêng của minh, chang hạn A chọn khóa công khai (n, e) và giữ khóa bí mật d, B
chọn khóa công khai (n, a) và giữ khóa bí mật b Một người tham gia thứ ba C gửi một văn
bản cần bảo mật x đến cả A và B thì dùng các khóa công khai nói trên để gửi đến A bản mật mã y = x° mod n và gửi đến B ban mật mã z = x* mod n Ta sẽ chứng tỏ rằng, một người thám mã O có thể dựa vào những thông tin n, e, a, y, z trên đường công khai mà phát hiện ra
bản rõ x như sau:
(i) Tính c = £† mod a,
(1) Sau đó tính h = (ce -1)/a,
(iii) Và ta được x = y° (z')! mod n.
Thực vay theo định nghĩa trên, ce - 7 chia hết cho a,va tiếp theo ta có:
yo (zty! mod n = x (x4(ee- Dy! mod n = x°° (x**- )-! mod n = x ( bản rõ cần tìm).
Như vậy, trong trường hợp này việc truyền tin bảo mật không còn an toàn nữa.
Giải pháp phòng tránh: Dùng modul n khác nhau cho mỗi người tham gia.
Lợi dụng tính nhân của hàm lập mã
Ta chú ý rằng hàm lập mã f(x) = x° mod n có tính nhân (multiplicative property), nghĩa là fxy) = fx) fy) Dựa vào tính chat đó, ta thay rằng nếu y là bản mã từ bản rõ x, thì y = y.w° mod n sẽ là bản mật mã của bản rõ xu Do đó, khi lấy được bản mật mã y, dé phát hiện ban rõ x
người thám mã có thê chọn ngau nhiên một sô u roi tạo ra bản mã y, và nêu người thám mã có
Trang 12khả năng thám mã theo kiêu có bản mã lựa chon, tức có khả năng với y được chọn tìm ra bản rõ tương ứng là x = xu, thì bản rõ gốc cần thiết phát hiện sẽ là x = x mod n.
Giải pháp phòng tránh: Không đề thám mã có khả năng thám mã theo kiểu có bản mã
được chọn.
2.3 Một số điểm yếu sử dụng để thám mã hệ mật RSA
Tinh bao mật của RSA chủ yếu dựa vào việc giữ bí mật số mũ giải mã d và các thừa sé Dp, q của n Tuy nhiên, điều kiện an toàn trên của một hệ mật mã chỉ là điều kiện chung.
Trong thực tế khi thiết kế một giao thức hay một kênh bí mật có sử dụng hệ mật RSA vẫn tồn tại nhiều điểm yếu, những điểm yếu đó đã được thám mã lợi dụng nhằm phá hủy giao
thức, kênh bí mật, pha vỡ tính an toàn của hệ mật.
2.3.1 Biết Ó(n) tìm được p, q
Ta có thé xác định được p, q và ngược lại Biết được p, q ta có thé dé dang tính được ¢(7).
2.3.2 Biết số mũ giải d
Nếu biết số mũ giải mã d thì coi như đã làm xong việc thám mã, nên việc tim được p, g cũng không còn ý nghĩa đối với việc thám mã nữa Tuy nhiên, điều này có một ý nghĩa quan
trong hơn đó là nếu đối phương biết d thì không chỉ phải thay số mũ giải mã khác mà còn phải
chọn modul n khác, vì khi đó đối phương cũng có thê biết p, g, do đó biết cách tìm khóa giải mã d bat kỳ, nêu khóa lập mã van giữ modul n, n = p.g.
2.3.3 Giao thức công chứng
Giao thức công chứng là giao thức được thiết kế cho một văn bản sau khi A ký lên người đó, người khác có thé xác thực được rằng văn bản này thực sự được ký bởi A (nó cũng giống
như việc công chứng của công chứng viên ký chữ ký của mình lên bản công chứng).
2.3.4 Giao thức số mũ công khai nhỏ
Một tình huống sử dụng RSA khác nhằm giảm thời gian mã hóa hoặc kiểm thử chữ ký là ding số mũ mã hóa nhỏ Cách này hay được sử dụng trên mạng có yêu cầu truyền thông lớn.
Trong giao thức này mỗi người dùng chọn hai số nguyên tố lớn p, gq và công bố mã khóa công khai <ø¿, e> của mình Chúng ta quan tâm đến trường hợp khi các số mũ mã hóa e¡ là giống nhau và là một số nguyên nhỏ Với một vài ứng dụng, điều đó khá hấp dẫn vì
ứng dụng với số mũ nhỏ sẽ có thé thực hiện đơn giản và nhanh hơn Tuy nhiên tinh chat này
sẽ làm cho giao thức that bại nếu một người mã hóa cùng một văn ban bằng số mũ e; và gửi
cho nhiêu người.
Trang 132.3.5 Giao thức số mũ bí mật nhỏ
Đề giảm thời gian giải mã (hoặc thời gian sinh chữ ký), người ta muốn sử dụng một giá trị đ nhỏ hơn là giá trị đ ngẫu nhiên Vì việc mũ hóa theo modul mat một khoảng thời gian tuyến tính với log›đ, nên số mũ d nhỏ có thé nâng hiệu quả thực thi nhanh ít nhất 10 lần (đối với modul 1024 bit) Tuy nhiên, M.Wiener [17] chỉ ra rằng một số mũ giải mã d nhỏ sẽ dẫn đến sập toàn bộ hệ thống mã.
Định lý M.Wiener: Cho n = p.g với q < p < 2q Giả sử d <n Biết <n, e> với ed
= I (mod ¢(7)) thì có thể khôi phục d một cách hiệu quả.
2.3.6 Trường hợp các tham số p-1 và q-1 có các ước nguyên tô nhỏ
Trong khi xây dựng hệ mật mã RSA, nếu ta bất cân trong việc chọn các tham số pva
q dé p-1 hoặc q-1 có ước nguyên tố nhỏ thì hệ mật mã trở nên mắt an toàn.
Giải pháp khắc phục: Ta có thé dé dàng xây dựng hệ mật RSA với module n = p.q
hạn chế được việc phân tích theo phương pháp này.
2.4 Mô tả bài toán thám mã hệ mật RSA sử dụng modul chung
Khi trong hệ thống có k người đăng ký sử dụng RSA, để việc quản lý, phân phối
khóa được đơn giản, trung tâm sẽ sinh ra 2 số nguyên tổ p, g; tính số modul ø = p.g; sinh ra các cặp khóa mã hóa/ giải mã {e;, đ,} sau đó cấp cho người đăng ký thứ i trong hệ thống bí
mật d; tương ứng, cùng các thông tin công khai bao gồm số modul n và một danh sách đầy
đủ khóa công khai {e;} (¡=1 k).
Bat kỳ người nào có thông tin công khai này đều có thé mã hóa văn bản M dé gửi cho người đăng ký thứ i bằng cách sử dụng thuật toán mã hóa RSA với khóa mã e¡ Y =M“ modn tồi gửi Y Hoặc người đăng ký thứ i có thé ký một văn bản M bằng cách tính chữ ký S,=M“% modn Bat cứ ai cũng có thé xác thực rằng M được ký bởi người đăng ky thứ i bằng cách tính S“ modn và so sánh với M.
Tuy nhiên, việc sử dụng số modul chung dẫn đến một số điểm yếu của giao thức.
2.5 Thuật toán thám mã giao thức modul n chung
2.5.1 Thám mã dựa trên các số mũ mã hóa nguyên tô cùng nhau
Như Simmons[18] chi ra, nếu một văn bản được gửi tới hơn một người đăng ký có các
sô mũ mã hóa nguyên tô cùng nhau thì đôi phương có thê giải mã được văn bản mà không cân
Trang 14biết khóa giải mã Để chứng minh điều này, hãy xem kết quả của việc mã hóa văn bản M gửi
cho 2 người có khóa công khai tương ứng với e; va e;:
Y,= M ” modn
Y,=M” modn
Vì e; va ej là 2 số nguyên tố cùng nhau, nên có thé tìm được các số nguyên r và s băng thuật toán Euclid, thỏa: re; + se; = 1.
Rõ rang, hoặc r hoặc s phải là số âm và trong trường hợp nay ta giả sử r<0 và vié r = -.lrl.
Nếu Yj hay Yj không nguyên tô cùng nhau với ø, ta hãy sử dụng thuật toán Euclid tìm ước chung lớn nhất của nó với n Ước số chung lớn nhất này chính là một trong hai thừa số nguyên tố
của modul chung n Khi lộ p, g, hệ mật mã coi như đã bị phá vỡ.
Nếu Yj và Yj nguyên tố cùng nhau với n, ta hãy sử dụng thuật toán Euclid dé tìm
nghịch đảo của Yj mod n Phép tinh sau chỉ ra cách văn bản bị khám phá:
tr tr] <Low T[M J aoe i j cá man
Bởi vậy giao thức này thất bại trong việc đảm bảo bí mật văn bản M gửi tới các thành viên có khóa công khai là những số nguyên tố cùng nhau.
Việc sử dụng số modul chung cũng làm cho giao thức này dé bị thám mã khi sử dụng
phương pháp xác suất đề phân tích tìm ra thừa số modul, hoặc sử dụng thuật toán tất định để tính toán số mũ giải mã mà không cần số modul.
2.5.2 Phân tích số modul n bằng cách tìm căn bậc hai không tam thường của I mod n
Ý tưởng cơ bản của kiểu thám mã thứ hai là phân tích số modul ø bằng cách tìm căn
bậc hai không tầm thường của 1 mod n Nghia là tìm một số b thỏa mãn:
Một thành viên có thê sử dụng khóa công khai và bí mật của mình đề sinh ra khóa bí mật của người dùng khác Tức là căn cứ vào số mũ mã hóa công khai e;, người giữ cặp số mũ mã hóa/giải mã e2, d2 có thé tìm được số nguyên đ; sao cho e,.d, =1mod¢(n) mà không biết (x).