Vì vậy, là n g ư ờ i công tác ở m ột đơn vị nghiên cứu về các hệ thống mật mã tôi xin được đăng ký thực hiện đề tài: ’’Nghiên cứu những phương pháp tấn công giao thức yếu sử dụng mật mã
Trang 1Đ Ạ I H Ọ C Q U Ố C G IA H À N Ộ I
K H O A C Ô N G N G H Ê
N g u y ễ n T h ị P h ư ơ n g Liên
NGIỈIÊN CỨU NHỮNG PHƯƠNG PHÁP
TẤN CÔNG GIAO THỨC YÉU s ử DỤNG
HỆ MẬT MÃ KHOÁ CÔNG KHAI
C huyên ngành: CÔNG N G H Ệ THÔNG TIN
Trang 22.2.5 Giao thức modal chung và các phương pháp tẩn công 25
2.2.6 Giao thức số mũ công khai nhỏ .31
2.2.7 Giao thức sổ m ũ bí mật n h o 33
2.2.8 Giao thức entropy thấp 36
2.2.9 Giao thức khoủ đổi xứng 38
2.2 ỉ 0 Tóm tắt và phản tích 42
CHƯƠNG 3 - VỀ VIỆC LẬP TRÌNH MÔ PHỎNG PHƯƠNG PHÁP TÁN CÔNG GIAO THỨC s ử DỤNG HỆ MẬT MÃ KHOÁ CÔNG* ề ề KHAI RSA CÓ MODUL CHUNG 44
3.1 YÊU CẦU TÍNH TOÁN SÓ CỠ LỚN 44
3.2 BIÉƯ DIỄN SÓ CỠ LỚN 45
3.3 CÁC THUẬT TOÁN TÍNH TOÁN SÓ CỠ LỚN 47
3.3.1 Mội sổ khái niệm 47
3.3.2 So sảnh 48
3.3.3 Phép cộng 49
3.3.4 Phép trừ 50
3.3.5 Phép nhân 50
3.3.6 Phép chia 5 ì 3.3.7 Luỹ thừa .52
3.3.8 Ước số chung lớn nhất 53
3.3.9 Phép tỉnh nhân theo moduỉ p 54
3.3.10 Phép tính luỹ thừa theo moduỉ p 54
3.3.1 Ị Tìm phần tử nghịch đảo theo moduì p 55
3.3 ỉ 2 Phép cộng có dấu 56
3.3.13 Phép trừ có dấu 57
3.3 ì 4 Phép nhân có dấu 57
3.4 MỘT SÓ NÉT VỀ LẬP TRÌNH TÍNH TOÁN SỐ CỠ LỚN 58
Trang 33.5 GIÓI THIỆU CHƯƠNG TRÌNH TÁN CÔNG GIAO THÚC s ử DỤNG
HỆ MẬTMẰ RSA Có MODUL c h u n g 59
3.5 ỉ Bộ công cụ toán h ọ c 59 3.5.2 Trình minh hoạ thuật toán tấn công giao thức sư dụng hệ mật mã
RSA cỏ modul chung 60
KÉT LUẬN 64TÀI LIỆU THAM KHẢO 6 6
PHỤ LỤC 67
Trang 4MỞ ĐẦU
T rư ớ c đây, m ậ t m ã h ầ u n h ư chỉ được quan tâ m tro n g lĩnh v ự c q u ân sự
và n g o ạ i giao T u y n h iên , tro n g thời đại m áy tính đ iện tử, đặc biệt khi m ạ n g
m áy tín h trở nên p h ổ b iến, các dịch vụ thư tín điện tử, th ư ơ n g mại điện tử,
g ia o d ịc h tiền tệ., trên m ạ n g p h á t triển , v à n hữ ng c ơ sở d ữ liệu k h ổ n g lồ c h ứ a các th ô n g tin riê n g tư đ ư ợ c ỉưu g iữ tro n g n h ừ n g ch iếc m áv tính kết nối m ạ n g thì v iệc s ử d ụ n g m ậ t m ã để đ ả m b ảo an toàn m ạng, báo m ậ t v à xác th ự c d ữ liệu đã đ ư ợ c p hổ b iến rộ n g rãi tro n g x ã hội,
mã P h ần k h o á lập m ã v à ph ần k h o á giải m à khác nhau, tro n g đó p hần khoá lập m ã là c ô n g khai, p h ầ n k h o á giải m ã là bí mật Và hệ th ố n g này đ ư ợ c gọi là
hệ m ậ t m ã k h o á c ô n g k hai, ví dụ n h ư hệ mật mã R S A , R ab in , E lG am al,
K hi m ộ t th uật to án m ật m ã đ ư ợ c sử d ụ n g để bảo m ật hay xác th ự c d ữ liệu, nó sẽ n ằm tro n g k h u ô n k hố m ộ t giao thức xác định, thích hợp để x ử lý
d ừ liệu C h ín h vì vậy, từ khi hệ m ậ t m ã khoố công khai ra đời đã có rất nhiều
g iao th ứ c đ ư ợ c thiết k ế đ ế n â n e cao độ tin cậy và x ác thực M ụ c đích củ a g ia o
Trang 5an toàn cú a g ia o th ứ c là rất qu an trọng Đ ộ an loàn củ a giao thức k h ô n g chỉ phụ thuộc v à o th u ậ t to án m ậ t m ã m à còn phụ thuộc vào việc thiết kể g iao thức
và cho đến n a y đ ã có m ộ t số ch u y ê n n g àn h ra đời đê nghiên cứu về độ an toàn của g iao thức chẳng hạn Logic BAN, ch ứ n g minh tri thức không V.V
về mặt thực tiễn, chúng ta cũng biết rằng trong nhiều mạng máy tính
người ta sử d ụ n g g iao thứ c để đ ảm bảo bảo m ật và xác thực dữ liệu, ch ín h vi vậy việc th iết kế m ộ t g ia o th ứ c đ ảm bảo độ an toàn và tin cậy là vấn đ ề quan trọng Bên c ạ n h đó, đổi với người tấn c ô n g thì việc tìm ra sơ hở c ủ a g ia o thức
T ừ việc p h â n tích n h ữ n g th iế u sót tro n g thiết kế 2 ,iao thức m ật m ã sẽ rút ra
n h ừ n g chỉ d ẫ n cần th iết để p hát triển các eiao thức tốt Vì vậy, là n g ư ờ i công tác ở m ột đơn vị nghiên cứu về các hệ thống mật mã tôi xin được đăng ký thực hiện đề tài: ’’Nghiên cứu những phương pháp tấn công giao thức yếu
sử dụng mật mã khoá công khai" cho luận văn tốt nghiệp thạc sĩ của mình
Trang 6Mục tiêu của đề tài là nghiên cứu cơ sở lv thuyết và các phương pháp tấn công giao thức yếu, xảy dựng chương trình mô phỏng việc tân công giao thức sử dụng hệ mật mã khoá công khai RSA có modul chung (là một trong nhùng tấn công hay và bố ích) Tuy nhiên để tránh việc hiểu lầm ràng các hệ thống mật mâ khoá đổi xứng không có các điếm yếu trong sử dụng, trong luận văn còn nêu ra các giao thức sử dụng DES thất bại trong việc xác thực.
Luận văn gồm phần mở đầu, phần kết luận, ba chương chính, tài liệu tham khao và phần phụ lục Trong đó,
THỨC YÉUChương 3 VỀ VIỆC LẬP TRÌNH MÔ PHONG PHƯƠNG PHÁP
TÁN CÔNG GIAO THÚC sử' DỤNG HỆ MẬT MẢ KHOÁ CÔNG KHAI RSA c ó MODUL CHUNG
Phụ lục là các chương trình mô phỏng phương pháp tấn công giao thức
sứ dụng hệ mật mã khoá công khai RSA có modul chunR
Cuối cùng, tôi xin chân thành cảm ơn thầy giáo hướng dẫn TS Nguyễn Ngọc Cương, người đã trực tiếp hướng dẫn tôi viết luận văn thạc sĩ này Tôi cũng xin chân thành cảm ơn tất cả các thầv cô trong khoa Công nghệ thông tin, Viện Công nghệ thông tin đã trang bị cho tôi nhùng kiến thức cơ bản đế tôi có thế hoàn thành được luận văn Xin chân thành cảm ơn các bạn bè, đồng nghiệp, những người đã có rất nhiều ý kiến đóng góp, giúp đờ tôi trong quá trình làm luận văn Và tôi xin bày to lòng biết ơn đến nhừng naười thân trong gia đình đã luôn dành cho tôi sự quan tâm và động viên
Trang 7Trang 7
CHƯƠNG 1 - HỆ MẬT MẢ KHOÁ CỒNG KHAI
T ro n g mô hình m ật m ã cổ điển, người gửi v à người nhận c ù n g chọn
m ột k h o á K bí mật, sau đó d ù n g K đê tạo thuật toán lập m ã e K và thuật toán giái m ã clK C ác hệ m ậ t th uộ c loại này còn đ ư ợc gọi là các hệ m ật kh o á bí m ật
vì việc đế lộ e K sẽ làm c h o hệ th o n g m ất an toàn N h ư ợ c điêm cùa hệ m ật này
là nó yêu cầu phải có th ô n g tin trư ớ c về kh o á K g iữ a người gửi và người nhận
q u a m ộ t kên h an toàn trư ớ c khi gửi m ộ t bản m ã bất kỳ.
C h ín h vì vậy, náy sin h V tư ớ n g xây d ự n g m ộ t hệ m ật m ã sao ch o biết
d ư ợc phần cô n g khai củ a kh o á K và thuật toán lập m ã ÜK vẫn rất khó giải mã,
và ih ư ờ n g là k h ó tìm đ ư ợ c phần k h o á giải m ã K dù thuật toán giải m ã có thể
d ư ợ c biết.
T ừ cuối n h ữ n g năm 70, các nhà lập m ã đà phát triển các hệ m ật mã có
độ m ật đ ư ợ c bảo đ ảm b à n g độ p h ứ c tạp tính toán Nhừna, thuật toán mật mã này yêu cầu khả n ăn g tính toán p h ứ c tạp khi tấn cô n g và đ ư ợ c thiết kế để
c h ố n g lại sự tấn c ô n g c ủ a các đối thú có thời gian giới hạn T ro n g các hệ mật
m ã này, p h ầ n k h o á lập m ã và phần k h o á giải m ã khác nhau, tro n g đó phần khoá lập m ã, thuật toán lập mã, th u ật toán giải mã là c ô n g khai còn phần khoá giải mã là bí mật V à h ệ th ố n g này đư ợc gọi là hệ m ật mã k h o á c ô n g khai.
N ă m 1977, Ron Rivest, Adi S h am ir v à Len A d lem an [5 ] đã đề xuất hệ
m ật mã k h o á cô n g khai đ ầ u tiên, đó là hệ m ật m à R S A nổi tiếng K ẻ từ đó đà
có m ộ t số hệ m ật mã k h o á cô n g khai được cô ng bố, độ m ật của c h ú n g dự a
Trang 8trên các bài toán tính toán khác nhau Trong đó, quan trọng nhất là các hệ mậl sau:
- Hệ mật RSA: độ bảo mật của nó dựa trên độ khó của việc phân tích rathừa số nguyên tổ các số nguyên lớn
- Hệ mật McEliece: Hệ này dựa trên lý thuyết mã đại số và vẫn được coi là an toàn Hệ mật McEliece dựa trên bài toán giải mã cho các mà tuyến tính (là bài toán NP - đầy đủ)
- Hệ mật Elgamal: Hệ Elgamal dựa trên tính khó giải của bài toán logarit rời rạc trên các trường hữu hạn.
- Hệ mật Chor - Rivest: Hệ Chor - Rivest thuộc vào hệ mật xếp balô,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 đủ - thuộc vào một lớp khá lớn các bài toán không có cácthuật giải được biết trong thời gian đa thức).
- Hệ mật trên các đường cong Elliptic
Trong chương này, chúng ta sẽ đề cập đến hai hệ mật mã khoá công khai được sử dụng nhiều nhất là Hệ mật RSA và Hệ mật Elgamal
Theo cách đặt tên truyền thống, ta đặt Alice, Bob để chỉ 2 thành viên muốn truyền thông cho nhau còn Oscar hay Marvin đế chỉ kẻ tấn công muốn nghe trộm hoặc giả mạo trong quá trình truyền thông giữa Aỉice và Bob.
Trang 9Trang 9
Hệ mật mã RSA được sử dụng để cun» cấp sự báo mật và đảm bảo tínhxác thực cua dừ liệu số Hiện nay RSA được sư dụng trong nhiều hệ thongthương mại Các dịch vụ web server và web browser sử dụng nó đê đảm bảo
an toàn việc truyền thông web, nó được sử dụng để đám báo bảo mật và xác thực của Email, đảm báo an toàn cho các phiên truy nhập từ xa và là bộ phận quan trọng của các hệ tlìống thanh toán thẻ tín dụng điện tử Tóm lại, RSA thường được sir dụng trong các ứne dụng cần sự bảo đám an toàn và bảo mật
dữ liệu số.
1.1.1 Mô tả hệ mật RSA
Trước tiên, ta hãy nhắc lại định nghĩa hệ mật
Một hệ mật là một bộ 5 (p, c - K £, $) thoả màn các điều kiện sau:
1 plà một tập hữu hạn các bàn rõ có thể
2 c\ằ tập hữu hạn các bản mã có thể
3 .^(không gian khoá) là tập hữu hạn các khoá có thể
4 Đối với m ồi K e J(cò m ột quy tắc mà eK: p~> ỚVà một quy tắc giải
mà tương ứng dK e 'ĩò. Mồi eK: p c và dK: c -> p\à những hàm mà
1.1 H Ệ M Ậ T M Ã R SA
Trang 10Hệ mật mà RSA[5] sừ dụng các tính toán t r o n g z,„ trong đó n là tích của hai số nguyên tố phân biệt p, q và (ị)(n) = (p-1 )(q-l ) Mô tả hình thức của
hệ mật này như sau:
Cho n = p.q trong đó p và q là các số nguyên tố khác nhau
Với K = (n,p,q,a,b) ta xác định:
eK(x) = xb mod n
và dK(y) = y*1 modn trong đó ( x , y e z„).
Các g iá trị n, b c ô n g khai cò n các giá trị p, q, a g iữ bí mật.
Ta hãy k iếm tra xem cá c p h é p m ã và giải m ã có phải là các phép toán nghịch đ ảo c ủ a nh au hay khô n g
Vì ab = l(mod<Ị)(n)) nên ta có ab = t.ệ(n ) + 1 với m ột số n g u y ên t > 1 nào đó G iả s ử X € zn ;
Trang 111.1.2 Thục thi hệ RSA
De thiết lập hệ thống, Bob sẽ tuân theo các bước sau:
1 Bob tạo hai số nguyên tố lớn p và q
Trang 12Sau đây là một ví dụ về cách thức thực hiện cua hệ RSA (tất nhiên không mật).
Giả sử Bob chọn p = 101 và q = 113 Khi đó n = 11413 và <Ị)(n) = 100 X
112 =11200 Bob chọn ngẫu nhiên một số b và kiểm tra điều kiện ƯCLN (ệ(n), b) = 1 bằng thuật toán Euclide Gia sir Bob chọn b = 3533, khi đó theo thuật toán Euclid mờ rộng: b' 1 = 6597 mod 11200
Bởi vậy, số 1 Ĩ 1 Ũ bí m ật đề giải m ã cùa Bob là a — 6597.
Bob sẽ công bổ n = 11413 và b = 3533 trong một danh bạ khoá côngkhai.
Bây giờ, giả sử Alice muốn gửi bản rõ X = 9726 tới Bob Cô ta sẽ tính:
9 7 2 6 3533 mod 11413 = 5761
rồi gửi bản mã 5761 trên kênh
Khi Bob nhận được bản mã 5761, anh ta sứ dụng số IĨ1Ũ bí mật a đê tính
ra x:
57616597mod 11413 = 9726
1.1.3 Đô an toàn của hê RSA • •
Độ an toàn cúa hệ RSA được dựa trên eiá thiết là hàm mã Ck(x) = xb mod n là hàm một chiều Bởi vậy thám mã sẽ khôna, có khả năng về mặt tính
toán đ ể giải m ã đ ư ợ c m ột bản mã Cửa sập cho phép Bob giải m ã đư ợc chính
là thông tin về phép phân tích thừa sổ n (n=p.q) Vì Bob biết phân tích này, anh ta có thế tính ệ(n) = (p-l).(q-l) và rồi tính số mũ giải mã a bằng cách sử dụng thuật toán Euclide mở rộng
Trang 13Trang 13
Cách tấn công dề thấy nhất đối với hệ mật này là thám mã cô găng phân tích n ra các thừa số nguyên tố Nếu thực hiện được phép phân tích này thì có thể dễ dàng tính được ệ(n) = (p-1 ).(q-l) rồi tính số mủ a từ b đúng như Bob làm
Vì thế để hệ RSA được coi là an toàn thì nhất thiết n = p.q phái là một
số du lớn để việc phân tích nó sẽ không có kha năng về mặt tính toán Các thuật toán phân tích hiện thời có khả nâng phân tích các số tới 130 chữ số thập phân Vì vậy đế đảm báo an toàn nên chọn các số p và q có khoảng 100 chừ số, khi đó n sẽ có tới 200 chữ số Ngoài ra các số p, q cần phải thoá mãn một sô yêu câu cụ thể nừa
1.2 HỆ MẬT MÃ ELGAMA
í 2.1 Mô tả hệ mật Elgamal
Hệ mật Elgamal[5] được đề xuất từ năm 1985, dựa trên bài toán logarit rời rạc là bài toán được dùng nhiều trong nhiều thù tục mật mã Chúng ta sẽ bắt điầi bằng việc mô tả bài toán này khi thiết lập một trường hữu hạn Zp, p là
số ngu/ên tố
3ài toán logarit rời rạc trong Zp:
ỈĐic trưng của bài toán: I =(p, a, P) trong đó p là số nguyên tố,(Oie Zp là phần tử nguyên thuỷ, [3 e Zp\
ĩ Vục tiêu: Hãy tìm một số nguyên duy nhất a, 0 < a < p-2 sao cho a “
== 3 (m o d p)
TT< sè xác định số nguyên a bàng logo: p
V
Trang 14Elgamal đã phát triển một hệ mật khoá công khai dựa trên bài toán logarit rời rạc Hệ thống này được trình bày trong hình dưới đây.
C'ho p là số nguyên tố sao cho bài toán logarit rời rạc trong Zp là khó giái
Cho a e Zp* là phần tử nguyên thuỷ Giả sử p~ Zp*, c= Zp*x Zp
Các giá trị p, a, p được công khai, còn a giũ' bí mật
Với K = (p, a, a, P) và một số ngẫu nhiên bí mật ke Zp.|, ta xác định:
eK(x,k) = (yi, y2)
với y ], y2 e Zp* ta xác định:
d K( y I, y 2)= y 2 ( y i ay ' mod p
Hệ mật Elgamaỉ là một hệ mật không tất định vì bàn mã phụ thuộc vào
cả bán mã X lẫn giá trị ngầu nhién k do Alice chọn Bởi vậy, sẽ có nhiều bản
mà được mã từ cùng bản rõ
Dề thử lại rằng dK(y I, y2) - x- số ngầu nhiên k do người lập mã tự chọn
và không cần thông báo dưới bất kỳ dạng nào cho người nhận, tuy nhiên nó là cần thiết và cần được giữ kín để bảo mật dối với ncười thám mã
Trang 15Trang 15
1.2.2 Thực thi hệ Elgamal
Bản rõ X được che dấu bàng cách nhân X với |3k đế tạo ra y2 Giá trị yi =
«k cùng được gừi đi như một phần cua ban mà Bob là người biết số mù bí mật a có thể tính được ị3k từ otk Sau đó anh ta sẽ tín h ra X bàng cách nhân y2
1.2.3 Độ an toàn của hệ Elgamal
Hệ mật Elgamal được xây dựng trên bài toán logarit rời rạc Lợi thế của bài toán logarit rời rạc trong xây dựng hệ mật là khó tìm được các logarit rời rạc, song bài toán ngược lấy luỹ thừa lại có thế tính toán hiệu quá theo thuật toán nhân và bình phương Nói cách khác, luv thừa theo modul p là hàm một chiều với các sổ nguyên tổ p thích hợp
Trang 16Bài toán logarit rời rạc trong Zp là đổi tượng trone nhiều công trinh nghiên cứu vả được xem là bài toán khó nếu p được chọn cẩn thận Cụ thể là khônu có một thuật toán thời £Ìan đa thức nào cho bài toán logarit rời rạc.
Vì thế đế hệ Elgamal được coi là an toàn, đổi phó với các phương pháp tấn công đà biết, p phái có ít nhất 150 chừ số và (p-1 ) phải có ít nhất một thừa
số nguyên tố lớn, a là phần tử nguyên thuỷ theo moduỉ p sao cho bài toán tính loguị3 là khó Bên cạnh đó, việc giữ bí mật số k là rất quan trọng vì nếu biết k
sè tìm được số mù bí mật a
1.3 LƯỢC ĐỒ CHỮ KÝ SÓ RSA
Lược đồ chừ ký số RSA tương tự như hệ mật RSA nên ta không trình bày ở đây
Trang 17Trang 17
1.4 LƯỢC ĐỒ CH Ũ KỶ SÓ ELGAMAL
Lược đồ chừ kv Elgamal được mô ta như sau:
Cho p là sổ nguyên tố sao cho bài toán logarit rời rạc trong Zp là khó
và giả sử a e Zp* là phần tử nguyên thuỷ
Cho P- Zp\ J ì- Zp* X Zp.| và định nghĩa:
Các giá trị p, a, p là công khai, còn a là bí mật
Với K = (p, a, a, (3) và một số ngẫu nhiên bí mật ke Zp„i*, ta định nghĩa chữ ký sổ: sigK(x,k) = (y,ỗ)
Trang 18CH ƯƠNG 2 - NGHIÊN c ử u CÁC PHƯƠNG PHÁP TẤN CÔNG GIAO
ra từ việc phân tích những sai sót này
Trước khi đi vào nội dung chính, chúng ta hãy xem xét các kiểu tấn công mật mã cơ bán
Trang 19Trang 19
biết hệ mật được sử dụng Do đó, mục tiêu trong việc thiết kế một hệ mật là phải đạt được độ mật dưới giả thiết Kerekhoff
Việc thám mà có thê quy về việc tìm được ban rõ hoặc phát hiện khoá
mã, khi biết trước hệ mật mã được dùng Ngoài việc biết hệ mật mã, người thám mà còn cần có thông tin khác đê tim ban rõ và phát hiện khoá Tuỳ theo thông tin dó là gì mà ta phân các bài toán thám mà thành các loại: chỉ biết bản
mã, biết các cặp rõ/mă, có bản rõ được chọn và có bản mă được chọn
Người thám mã được quyền truy nhập tạm thời vào cơ chế mã hoá, nên
anh ta có thê chọn các bản rõ rriị, m 2, ni, và có được các bản mã tư ơ n g ứng C]
= e R( m , ) , c 2 = e K( i r i 2 ) , Cj = e K( m j ) , t ừ đ ó anh ta s ẽ p h ỏ n g đoán khoá K v à c ó
thê tìm đ ư ợ c bản rõ n v i từ m ộ t vài bán mã mới Cj,| = eK.(mi+i) c ũ n g được mã
bơi cùng khoá K
Trang 20Người thám mà được quyền truy nhập tạm thời vào cơ chế giải mà, nên
từ các bản mã C|, C'2, Ci anh ta nhận được các bản rõ tương ứng IT 1 |, ni2, , mị
từ đó anh ta sẽ phong đoán khoá K và có thê tìm được bản rõ nij+i từ một vài bán mã mới Cj+| = e«.(m i( i) cũng được inâ bởi cùng khoá K
Trong mồi trường hợp đối tượng cần phải xác định chính là khoá đã sử dụng Rõ ràng 4 mức độ tấn công (thám mã) trên đầ được liệt kê theo độ tăng cua sức mạnh tấn công và cách tấn công các bản mà được lựa chọn là thích hợp đối với hệ mật mã khoá công khai
2.1.4 T ấ n công ban mã lụa chọn
2.2 NGHIÊN CỨU CÁC PHƯƠNG PHÁP TẤN CÔNG GIAO THỨC YÉU 2.2.1 Một số sơ suất dẫn đến tấn công hệ RSA
Tính bảo mật của RSA chủ yếu dựa vào việc giừ bí mật số mũ giải mã
a và các thừa số p, q của n Ta thử xét một vài trường hợp xâm phạm tới các yếu tố bí mật đó
Trang 21Ta sè chứng minh rằng biết số 1Ĩ1Ũ giải mã a sẽ tim được các thừa sổ p,
q c ủ a n.
Do a.b = 1 mod <Ị)(n) nên a.b - 1 = l.ộ(n) = k
Do ộ(n) là một số chẵn nên ta có thể viết k dưới dạne k = 2l.r (với r là
số lé) và t > 1.
Theo định lý ơle: với Va mà (a,n)=l thì aíp,nl modn = 1, do đó, ta có:
V g G z n t h ì g k = 1 m o d n ( d o k là b ộ i c ủ a c p (n )) v à d o đ ó g k"2 là c ă n b ậ c h a i
của I theo modul n,
Theo định lý phần dư Trung hoa, 1 có 4 căn bậc hai modul n=p.q Hai
c ă n b ậ c h a i là ± 1 H a i c ă n b ậ c h a i k h á c là ± X ( x = 1 m o d p v à X = -1 m o d q )
( 1 < X < p) Sử dụng một trong hai căn bậc hai khônu tầm thường này sẽ tìm được p, q trong thời gian đa thức bàng cách tính gdc(x-l,n)
X2 = 1 m od n <=> (x-1 ) ( x + l ) = 0 m od n -> (x-1 )(x+ Ị ) chia hết cho n.
Trang 222.2.2 Một sơ su ấ t dẫn đến tấn công hệ Elgamal
Khi người sử dụng làm lộ giá trị ngẫu nhiên k, Oscar dễ dàng tìm được
b ả n rõ x:
Do y 2 = X p k mod p, trong đó biết y2, 3 , k, p; nên giải phương trình
2.2.3 Một số SO’ suất làm tổn thưong lược đồ chừ ký Elgamal
a Ngirời sử dụng làm lộ giá trị ngẫu nhiên k
Nếu biết k, Oscar có thể dễ dàng tính được số bí mật a nhờ giải phương trình sau:
ôa = (x - ky) mod (p-1)
Nếu phương trình có nhiều nghiệm thì nghiệm đúng của a thoả mãn đăne thức p = a a modp
Khi a bị lộ thì Oscar dễ dàng giả mạo chừ ký
Trang 231 rang 23
b Ngirờì sử dụng (ỉùng một số k ngẫu nhiên đế ký hai thông báo khác nhau
Nếu người sử dụng dùng cùng một số k đê ký hai thông báo khác nhau
sẽ tạo thuận lợi cho Oscar tính a Trước hết, ta có:
Trong d giá trị có thê này, Oscar có thể xác định được một giá trị đúng duy nhất qua việc kiểm tra điều kiện Y = a k modp.
Trang 24Đề thiết lập giao thức công chúng, A phai chọn các tham số RSA: các
số nguyên tố p, q và các số ỈĨ 1 Ũ mã hoá e và giải mã d thoả mãn: e.d=l mocỉ
<Ị)(n), tronR đó n = p.q Các giá trị n, e là công khai, còn p, q và d được A giữ
bí mật
Đè ký một văn bán M, A sứ dụng số mũ bí mật d đê tính chừ ký: s = vr' mod n Bất cứ ai cũng có thế sứ dụng nhừng thông tin công khai của A đế kiém thử xem s có thực sự là chừ ký của A trên M hay không bằng cách tính
sc mod n và so sánh với M Vì chi có A biết giá trị d, giá trị được dùng đê tạo
ra s nên g iao th ứ c c ô n g c h ứ n g k h ắ n g định rằng chỉ có m ộ t m ìn h A m ới có thế
tính ra s
Tuy nhiên, Davida và D enning[7] đã chỉ ra rằng, có thế tạo ra được chữ
ký giả mạo cúa giao thức này Sau đây là một phương pháp đế thực hiện điều
đ ỏ .
Bob có khoá bí mật là d và khoá công khai <n,e> Giá sử Marvin muốn
có được chừ ký của Bob trên một văn bán M e z*n Khi đó Marvin có thể thực hiện theo cách sau: lẩy một số ngẫu nhiên r e z*n, tính M' = rcM mod n,
và đề nghị Bob ký M\ Nếu Bob ký S' trên văn bản M' thì Marvin có thể dề dàng tính được chừ ký s của Bob trên M: s = S', r ■' mod n
Vì, từ S' = (M')d mod n = (rcM)d mod n = rcd Md mod rì = r.s mod nSuy ra s = f ’.S' mod n và s thực sự là chữ ký của Bob trên M
Thực vậy:
se = (S')c/r° (mod n) = (M')cd/rc (m od n) = MVr° (mod n) = M (mod n)
Trang 25ĩrang 25
Kỹ thuật trên gọi là kỹ thuật che khuất (blinding), cho phép Marvin lấy dược một chữ ký hợp pháp trên một văn bản anh ta muôn băng cách yêu câu Bob ký trên một văn bản "được che khuất" ("blinded") ngẫu nhiên Bob không có thông tin gì về văn bán anh ta dang thực sự ký
Kết quả cùa kỹ thuật này dựa trên một thực tế là RSA sứ dụng một hàm toán học {hàm mũ) bảo toàn phép nhân các giá trị đầu vào để ký Điểm mấu chốt của cách tấn công này là nếu chọn X, M, d và n bất kỳ thì:
(XM)d = xd Md mod n, tức là sigk(X.M) = sigk(X).sigk(M)
Vậy đế ngăn cản việc tấn côns vào giao thức công chứng bằng kỹ thuật che khuất, ta phải huý bỏ khả năng sử dụng tính báo toàn của phép nhân của
kè định giả mạo chừ ký Một trong nhừng cách đó là áp dụng hàm "hash một chiều" trên văn bản M trước khi ký và kỹ thuật này được áp dụng trong nhiều ứng dụng thực tế của RSA (ví dụ như thanh toán điện tử ẩn danh)
2.2.5 Giao thức niodul chung và các phương pháp tấn công
Tình huống dẫn đến việc sử dụng RSA có sổ modul chung xảy ra như sau: khi trong hệ thống có k người đăng ký sử dụng RSA, để việc q u á n lý - phân phối khoá được đơn giản, trung tâm sẽ sinh ra 2 sổ nguyên tổ p, q; tính
sô modul n = p.q; sinh ra các cặp khoá mã hoá/giải mã {ej, dị} sau đó cấp cho người đăng ký thứ i trong hệ thống khoá bí mật dj 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 đủ khoá công khai {ei} (i=l k)
Bât kỳ người nào có thông tin công khai này đều có thể mã hoá văn bản
M đê g ử i cho người đăng ký thứ i bằng cách sư đụne thuật toán mã hoá RSAvới khoá mã eL: Y - Me> mod n rồi gửi Y Hoặc người dăng ký thứ i có thể ký
Trang 26một văn bản M bàng cách tính chừ ký S' ~Md> mod/7 Bất cứ ai cũng có thế xác thực rang M được ký bởi người đăng ký thứ i bằng cách tính S]' mod n và
hệ mật mã coi như đã bị phá vỡ
Nêu Yị và Yj nguyên tố cùng nhau với n, ta hày sứ dụng thuật toán Euclid đô tìm nghịch đảo của Yj mod n Phép tính sau chỉ ra cách văn bản bị khám phá:
Trang 27Việc sử dụng số modul chung cũng làm cho giao thức này dễ bị tấn công theo những cách khác nữa mà trong đó một người đăng ký có thế bé được hệ mật mã Hệ mật bị sập, tất nhiên kênh bí mật bị lộ vì người đăng ký này có thế giải mã các văn bản của nhừntí người dùng khác và kênh chừ ký cũng hỏng vì anh ta có thể giả mạo chữ ký của người dùng mà không bị phát hiện Đó ỉà sử dụng phương pháp xác suất để phân tích 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
Ý tưởng cơ bản của kiều tấn công thử hai là phân tích số modul n bằng cách tìm căn bậc hai không tầm thường của 1 mod n Nghĩa là tìm một sổ b thoả mãn:
1 b2 = 1 mod n
2 b * ± 1 mod n
3 1 < b < n -1Neu tìm được số b như thế thì số modul n có thể được phân tích theo cách sau đây
Trang 28Đặt ei và d| là số mũ mã hoá và giải mã của người dùng hệ thống Với định nghĩa các số mũ này thi ei.d| = 1 mod (ị)(n) Vì vậy, e|d| - 1 phải là một
số nguyên nào đó là bội số của <Ị)(n) và chúng ta có thể tìm được các số nguyên không âm cp và k mà e|d| - I = c.<Ị)(n) = 2k(|>, với (p là số lẻ Thủ tụcsau đây đê tìm căn bậc hai không tầm thường của 1 mod n:
1 Chọn sổ nguyên a sao cho (a , n) = 1 và I <a<n-1
2 Tim so nguyên dương j nhở nhất thoá mãn a2,<p = 1 mod/7 (Vì 2k(p làbội số củ a ệ (n ), nên ch ắ c chắn tồn tại số này).
3 Đặt b-a~ ọ mod n
5 Neu b = -1 mod n, quay trở lại bước 1
Trang 29Trang 29
DcLaurentisị 1 ] đã chứng minh răng với a ngầu nhiên, 1 < a < n-1 :
p r o b ( ( a (fl = 1 m o d n) V ( d j < k ) ( a 2 ợ =- 1 m o d n )) < 1/2
hay prob (3 j ( 1 <j<k) ( a2 9 ^±\ mod n A a2 = 1 mod /?)) > 1 /2
Do đó, nếu ta xây dựng một thuật toán xác suất, thử lần lượt với m giá trị ngẫu nhiên a theo tính chất:
thuật toán sẽ d ừ n g nếu tính chất đ ó đư ợ c ng h iệm đ ú n g ớ m ột lúc nào đó và
cho ta kêí quả b — a~ mod n, trong trường hợp ngược lại, thuật toán cùn£
sẽ dừng và không có kết quá
Như vậy, ta thấy ngay rằng thuật toán khi dùng m giá trị ngầu nhiên a (l<a<n-l) sẽ cho ta kết quả với xác suất thành công > 1-1/2m Và khi đó, ta tìm được phân tích p, q của n
Vì vậy, một người trong cuộc có thể bé hệ mật mã trong giao thức này với xác xuất rất cao, bằng cách sứ dụng thông tin mà mình có Cách tẩn công
mà chúng ta vừa đề cập tới là rất quan trọng vì nó chỉ ra rằng nhừng thông tin
về cặp sổ mũ mà hoá/giải mã có thể cho phép tim ra các thừa sổ của số mođul
Kiêu tấn công thứ ba là một thành viên có thể sứ dụng khoá công khai
và bí mật cùa mình đế sinh ra khoá bí mật của người dùng khác Tức là căn cứ vào sô mũ mã hoá công khai ei, người gi ừ cặp sổ mũ mà hoá/giái mã e 2, d? có thể tim được số nguyên d|’ sao cho e|.d|’ = 1 mod<Ị)(n) mà không cần biết
<j>(n)
Trang 30De tìm được sổ d|’ này, cần phái tìm một số nguyên t nguyên tố cùng
nhau với C| và là bội của ộ(n) Điều này thực hiện được bởi (e, tị)(n)) = 1 Khi
đó, do t và C] nguyên tố cùng nhau nên tồn tại hai sô r và s sao cho rt + sei =1
Vi t là bội của 4*(n) nên s.e, = 1 modộCn) và khi đó di’ = s
Cụ thể, thủ tục tìm một số d|' như sau: (trong đó chi cần đến các giá trị
4 Nếu f còn khác 1 thì đặt t:= t/f rồi quay lại bước 2
l íiển nhiên t n g u y ên tổ cù n g nhau với C| T h e o các định nghĩa trên,
chúng ta biết rằng ei nguyên tố cùng nhau với ộ(n) Thủ tục trên đưa ra được
số mũ giải mã của e| Vì sự phức tạp tính toán của thủ tục này là 0[(log n)2] nên nó ià một khả năng đe doạ hệ thống MỘI lần nữa, những thông tin có sẵn cho người dùng hợp pháp trong hệ thong thừa sức bò được hệ thống mật mã Tất nhiên, người dùng này không thực hiện nguyên xi theo yêu cầu của nhà
thiết kế g iao th ứ c d àn h ch o người dùng, n h ư n g n h ữ n g thông tin cần thiết vẫn
có thề lấv được mà người dùng khônç vi pham quy định của giao thức
Tóm lại, qua ba cách tấn công ở trên có thế kết luận rằng giao thức số modul chung sẽ gặp thất bại trong việc bảo đảm bí mật các văn bản hoặc cung cấp việc xác thực cho chừ ký của người dùng trong hệ thổng Vì vậy, trôna; việc thiết kế các giao thức mới với thuật toán RSA, việc sử dụnạ số moduỉ chung cần phải tránh Cụ thế, người thiết kế giao thức phải lưu ý xem đối thủ
Trang 31Trang 31
sè có thế làm được gì với n h ữ n g bản mâ mà những bản rõ của chúng có liên quan (trong ví dụ là giống nhau) hoặc khoá cua họ có liên quan (trong ví dụ là nguyên tố cùng nhau) Có thê đưa ra hai nguyên tắc sau đây khi áp dụng RSA
đó là, cẩn phải đảm bảo:
1 Thôna tin của một cặp số mũ mà hóa/giải mà với sổ mođul đâ cho có khả năng đổi phó với thuật toán xác suất phân tích số modul
2 Thông tin của một cặp số mũ mà hóa/giải mã với số modul n đà cho
có khá năng đổi phó với thuật toán tất định đê tính toán các cặp mã hoá/giải mã khác mà không cần xác định trước (ị)(n)
2.2.6 C iao thức số mũ công khai nhỏ
Một tình huống sử dụng RSA khác nham giảm thời gian mã hoá hoặc
mạng có yêu cầu truyền thông lớn
Trong giao thức này mỗi người đùng chọn hai số nguyên tố lớn p, q và công bố khoá công khai <riị, ej> cúa mình Chúng ta quan tâm đến trường hợp khi các số mù mã h o á ej 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 tính chất này sẽ làm cho giao thức thất bại nếu một người mã hoá cùng một văn bản bằng số mũ ej và gửi cho nhiều người
Ví dụ, e = 3 và văn ban M được mã hoá để gửi cho 3 người Khi đó các bản mà sè là: c2 = M ' mod n2
c 3 = M 3 m o d n3
Cj = M ’ mod n4
Trang 32Nếu n2, n.1 và n.i nguyên tổ cùng nhau, thì áp dụng định lý phân dư Trung hoa sè lính được M ' duy nhất thuộc khoảng (0, n2n3n4) thoá hệ phương trình trên Lấy căn bậc 3 thông thường của M3 sè tìm được M.
Nếu ngược lại, n2 và ri3 không nguyên tố cùng nhau, thì USCLN(n2, n3)
sẽ là p hoặc q chung của hai người Khi đó người này hoàn toàn có thế phá vờ
hệ mật của người kia
Đe khắc phục nhược điểm này, văn bản M cần được gắn thêm một thông tin ngầu nhiên trước khi mã hoá đê gửi cho mồi người, (ví dụ gan thêm tem thời gian) Trong ví dụ của chúng ta ớ trên, các bản mã mới trong giao thức sẽ là:
Pj(x) = 0 modrij, 1 < i < k
có bậc không lớn hơn d có thể giải được trong thời gian đa thức nếu số phương trình lớn hơn d(d+l)/2 Vì trong trường hợp nàv số mũ là 3, nếu văn bán được điều chỉnh bằng tem thời gian được gửi cho ít nhất 7 thành viên trong mạng, văn bản sẽ không còn là bí mật đối với người tấn công sau một khoảng thời gian không dài Tất nhiên, đè tấn cônỉi theo cách này thì phải biết tem thời gian Tuy nhiên, tem thời gian chi gồm một số bit nhỏ so với kíchthước của văn bản vì vậy nó có thể được ước lượng trước khi áp dụng thuật
Trang 332.2.7 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ị d nhỏ hơn là giá trị d ngẫu nhiên Vì việc mũ hoá theo modul mất một khoảng thời gian tuyến tính với log2d, 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[3] 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ật mã
Định lý M.Wiener: Cho n = p.q với q<p<2q Giả sử d (-n 14. Biết <n,e> với
ed = 1 mod ộ(n) thì có thê khôi phục d một cách hiệu quả
Chứng minh:
Cách chứng minh dựa trên tính gần đúng cùa các phân số
Vì ed = 1 mod ộ(n) nên tồn tại một k sao cho ed - k ệ(n) = 1 Do đó:
Trang 34Thực tế, tất cả các phân số này có được là do sự hội tụ của khai triển
số liên tục e/n Một trong những phân so đó sẽ bằng k/d Vì ed - kệ(n) = 1, chúnạ ta có gcd(k,d) = 1 và do đó k/d là phân số tối giản Đây là thuật toán tuyến tính để khôi phục khoá bí mật d
Vi n phô biến là 1024 bit nên độ dài cùa d ít nhất là 256 bit đê tránh việc bị tấn công theo kiểu này Thật không may đối với những thiết bị có công
su ât nhò như thé th ô n g m in h (sm artcard ), ớ đó d nho sè tiết kiệm được nh iề u
e k
n d
Trang 35* Sử dụng CRT: Một phương pháp khác là sư dụng định lý phần dư Trung Hoa Giả sử chọn d sao cho cả dp = d mod(p-l) và dq = d mod(q-l) nhỏ (khoảng 128 bit) Việc giải mã nhanh bản mã c thực hiện như sau: tính Mp =
c lip mod p và Mq = c dq modq Sau đó sử dụng định lý phần dư Trung Hoa để
tính giá trị duy n h ất M E Z'„ th o ả m ãn M = Mp m od p và M = M t| m odq Kết
quả M thoá mãn M = Cdmodn được yêu cầu vấn đề là mặc dù dp và dq nhỏ, giá trị đ mođ(Ị>(n) có thể lớn Như thế cách tấn công theo định lý trên không thực hiện được
Chúng ta chú ý ràng với <n,e> đă biết thì tồn tại cách tấn công cho phép phân tích n ra các thừa sổ nguyên tố trong thời gian 0 (min ýd ,-yịà^ )
vì vậy dp và dq không thế chọn quá nhỏ
C h ú n g ta k h ô n g biết p h ư ơ n g ph áp nào kể trên là an toàn Điều mà
chúng ta biết là cách tấn công của Wiener là khôno, có hiệu quả với chúng Một định lý do Boneh và Durfee[3] cải tiến chỉ ra ràng nếu d< n°'2ụ2 thì có thể khôi phục d từ <n,e> Ket quả này chi ràng giới hạn cùa Wiener là chưa chặt
Trang 36chẽ khi cho rằng giới hạn là d < n()'25 Dây vẫn còn là một vấn đề mớ cho đến thời điếm hiện nay.
Mục đích của kênh bí mật ỉà che dấu ý nghĩa cúa văn bản với tất cả mọi người trừ người nhận hợp pháp Một thuật toán mã hoá mạnh được sử dụng
đế người ngoài cuộc không thể giải mã được thông điệp Tuy nhiên nếu chỉ có một số Itrợng nhỏ văn bản được gửi thì ý nghĩa của văn bản có thể thấy rô mà không cần giải mã Đây sê thực sự là vấn đề khi một hệ thống khoá công khai được sử dụng (như Holdridge và Simmons [7] chi ra)
Khi một hệ thong khoá công khai dùng trong giao thức cung cấp cho kênh bí mật, thì khoá mã hoá sẽ là công khai đế nếu bất cứ ai muốn gửi văn bán qua kênh này thì chỉ người nhận hợp pháp, có khoá giải mã riêng mới hiểu được Nhưng nếu chỉ một số nhỏ các văn bản có ý nghĩa, thì đối thủ sẽ tính toán trước được bản mã của các văn bản này Sau đó, khi một văn bản mã hoá được gửi qua kênh thì chí cần duyệt các giá trị đã tính toán trước là ý nghĩa của văn bản sè lộ ra Một ví dụ đơn giản nhất của thất bại này là tình huông chi có hai văn bán được gửi là “ycs” và ”no’\ Một người bất kỳ có khoá mà hoá công khai có thể mã hai văn bản này và sau đó khi văn bản “bí
Trang 37Trang 37
mật" được gửi qua hệ thống, anh ta dề dàng phân biệt giừa hai văn bản bán rõ
Rõ ràng, đây là một ví dụ cực đoan nhung nhiều vấn đề được giải thích thông qua đó
Như vậy, không gian văn bản gưi qua kênh bí mật sử dụng mật mã khoá công khai phải đủ lớn để ngăn ngừa sự tấn công theo cách mã trước tất
cá các văn bản có thế Tuy nhiên, kiểu tấn công này khôns yêu cầu mã hoá tất
cá các thông điệp Nếu ban mã của phần có ý nghĩa của văn bán được tính trước thì nội dung của văn bản mã hoá có the thấy rõ bằng việc so sánh với một báng tính toán trước mà không cần giải mã phân còn lại của thông điệp Khái niệm "ý nghĩa" ơ đây tuỳ thuộc vào không gian văn bản cụ thể được sử dụng trong hệ thống
Tiêu đề của phần này nói tới entropy thấp như là nguyên nhân sai lầm cua giao thức này Entropy là độ đo sự dư thừa trong không gian văn bản với
ý nghía là nó đo lượng thông tin phải có về một văn bản cho trước Nếu không gian văn bản có lượng entropy thấp, thì chỉ một lượng nhỏ thông tin về văn bản đã cho có thế khám phá toàn bộ thông tin trong thông điệp Bằng cách sứ dụng khái niệm định nghĩa ở đây, chúng ta có thể nói rằng sai lầm của giao thức được kiềm chứng trong phần này là do sử dụng hệ thống mật mã khoá công khai với không gian văn bản có entropy thấp
Holdriđge và Simmons đã chì ra và chứng minh sai lầm cùa giao thức này trong một ứng dụng do Bell Telephone Laboratories[7] đề nghị để sử dụng trong hệ thống điện thoại an ninh Trong hộ thống hày, mỗi người thuê bao sẽ nhập khoả mã cùa mình vào thư mục khoá công khai và giữ bí mật khoá giái mã Các văn bản được mã hoá trong hệ thống này bao gồm tiếng nói
số hoá truyền trong mạng điện thoại di dộny, Đe nói chuyện với một thuê bao nào đó có trong mạng, tín hiệu tiếng nói của người RỨi đã được số hoá sẽ
Trang 38được mã hoá bằng khoá mà của người đó có sẵn trong thư mục công khai Bên nhận, người thuê bao có thê sử dụng khoá giái mã riêng của anh ta đê giải
mà vãn ban này
Tuy nhiên tín hiệu tiếng nói có băng tần khá hẹp nên người tấn công hệ thống từ những thông tin truyền trên mạng tìm được một tập hợp dừ liệu nhỏ Kết hợp với độ dư ngôn ngừ của tiếng nói, giao thức đối với hệ thong này bị thất bại trong việc bảo vệ văn bản bí mật
1 loldridge và Simmons đã sử dụng dừ liệu tiếng nói số hoá định dạng vào các khối 32-bỉt để chuẩn bị mã hoá Vì vậy không gian văn bản thực tế đối với thuật toán mã hoá bao gồm các từ 32-bit Tuy nhiên họ cùng chỉ ra rằng entropy của các văn bản lấy từ tiếng nói là từ 16 đến 18bit Sử dụng một bảng tính toán trước của khoảng 1 0 0 0 0 0 từ mã, họ đà khôi phục được các phần của dừ liệu nguồn từ các văn bản mã hoá khác nhau Sau đó sử dụng phép nội suy (thêm từ) điền vào dữ liệu còn thiếu, họ đà tạo ra được một bản
rõ gần đúne với dừ liệu rõ ban đâu Cuối cùng, bản rõ gần đúng này được ghi băng và gửi cho một vài người nghe, họ có thể khôi phục được ít nhất 90% văn bản ban đầu
Thuật toán mã hoá khoá công khai này không gây ra sự sai lầm cho giao thức Hệ thống mã hoá không bị phá bởi các tấn công này, trong khi kênh bí mật bị thất bại Một lần nữa, nó đơn thuần là sự thất bại của giao thức,
cụ thế là do việc sử dụng hệ thống mã hoá khoá công khai để bảo vệ những văn bản bí mật trong không gian văn bản có entropy thấp
2.2.9 Giao thức khoá đối xứng
Trong nghiên cứu về nhũng giao thức thất bại ớ trên, tất cả đều sử dụng thuật toán mã hoá có khoá công khai Đê tránh một kết luận sai lầm là các hệ
Trang 39Trang 39
thống mật mà khoá đổi xứng không có các diểm yếu trong sử dụng, chúng ta
sè minh hoạ điều này bằng các giao thức sư dụng DES thất bại trong việc xác thực
Hai giao thức dirợc sử dụng đê xác thực văn bán của DES là Message Authentication Code-MAC, và mã phát hiện sửa đối (Manupulation Detection Code-MDC)
Quá trinh cài đặt của giao thức này như sau: Dữ liệu được chia thành n khối, mồi khối k bit, trong đó k có giá trị từ 1 đến 64 Ký hiệu các khối bán rõ này là Xi, Xị, x„ Sau khi các khối bản rõ được mã hoá để tạo thành các khối ban mã Y ị, Y2, Yn; một khối MDC được tạo ra là Yn+|, khối này là Xor của n khối bản rõ Người nhận hợp pháp sử dụng khối này để xác thực rằng dữ liệu nhận được không bị thay đối trong quá trình truyền Người nhận
dề dàng giải mã dữ liệu và tính các phép cộng hoặc trừ các khối này, so sánh với kết quả MDC Nếu đúng, người nhận sẽ tin là bản mã không bị thay đối
dụng sử dụng mã khối của DES Trong phương thức này, mộl vectơ 64-bit ban đầu Y<) và một khoá K-56 bit được trao đối bí mật giừa nhừrm người muốn liên lạc với nhau Bản mã gồm n khối, Y|, Y2, Yn mỗi khối gồm 64bit, được tính như sau:
Trang 40Khi nhận thông điệp, n khối đầu tiên Z|, z2, z„ được giai mã bằng
t h a o t á c n g ư ợ c l ạ i :
w,., = W,©D(K,Z,)irong đó D (K ,Z ị) là hàm giải mã cua DES với khoá K và văn bản Zj Phép X or cùa n khối này được tạo thành và tính toán với Yj+| Neu giông nhau, bên nhận sẽ tin tưởng rằng văn bản không bị thay đôi.
Tât nhiên người xâm nh ập có thê thav đôi văn bán mà k h ô n g phát hiện
ra miền là tống ©Xi = ©Wj vần còn bằng nhau Một kỹ thuật đánh lừa hệ
th ố n g này là sắp x ếp lại thứ tự củ a các khối Vì tông củ a các bản m ã k h ô n g thay đổi nên thao tác này k h ô n g bị phát hiện T ín h chất quan trọ n g cú a vấn đề này tuỳ thuộc vào bản chất củ a bản rõ N eu văn bản ỉà gửi 50,000$ từ tài
k h oán của bạn ch o tôi, tôi phải chắc chắn ràng số tài k hoản k h ô n g bị thay đổi thành chuyến tiền từ tài khoản củ a tôi san g tài khoản cúa bạn Kỹ thuật th ứ hai là, các khối có thể được chèn vào mả không bị phát hiện miễn là chúng xuất h i ệ n theo tìmg cặp một vì tổng hoặc hiệu của một khối với chính nó cho
kết quả là m ộ t khối zero và vì vậy sẽ k h ô n g ảnh h ư ở n g tới M D C Đ iều này có thế là m ột th u ận lợi đổi với người xâm nhập, đặc biệt là nếu anh ta biết m ộ t khôi mã hoá d ừ liệu m à có thê thay đôi giá trị tiền gửi vào tài k h oản của anh
ta từ 1 0 0 0$ thành 1 0 0 0 0 0 0$
Ta xét trường hợp sử dụng DES để sinh ra dòng bit mã hoá, chuồi bit
này sau đó được c ộ n g hoặc trừ với bản rò Đ e làm điều này, bản rõ đ ư ợc chia thành n khối, mồi khối 64 bit Đ ặt R 0 chỉ v ectơ ban đầu, n khối bit giả ng ẫu nhiên được tạo ra: