Nguyên lý của RSA

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xây dựng hệ thống bảo mật internet banking ngân hàng công thương ở Việt Nam (Trang 22 - 26)

CHƯƠNG 2- CÁC KỸ THUẬT MÃ HÓA VÀ ATTT TRONG THANH TOÁN

2.2 Hệ mật mã RSA

2.2.1 Nguyên lý của RSA

RSA đƣợc xây dựng trên cơ sở số học modulo. Cả việc mã hóa và giải mã đều đƣợc hoàn tất bằng việc nâng các số thành một modulo hàm mũ, một số là tích của hai số nguyên tố rất lớn (chứa ít nhất từ 100 đến 200 chữ số [15]).

Để sinh ra một cặp khóa trong RSA, lấy :

p, q: hai số nguyên tố lớn, nên có độ dài bằng nhau để bảo mật tốt nhất.

n: khóa công khai, là tích của p q.

e: khóa công khai, một số chọn ngẫu nhiên nhỏ hơn n và không có ƣớc số chung với (p - 1) và (q - 1)

d: khóa bí mật, (ed = 1 mod (p - 1)(q - 1)).

Hai số nguyên tố lớn p q cần đƣợc giữ bí mật, nếu có ai phân tích đƣợc n thành hai số p q, khóa bí mật e có thể bị lộ.

Việc mã hóa đƣợc thực hiện nhƣ sau: Một thông điệp m đƣợc chia thành các khối số mi nhỏ hơn n. Thông điệp đã đƣợc mã hóa c sẽ đƣợc làm thành các khối thông điệp có kích thước giống nhau ci với độ dài bằng nhau. Công thức mã hóa là:

ci = mie mod n và công thức giải mã là:

mi = cid mod n 2.2.2 An toàn của RSA

RSA có khả năng bảo mật nhờ vào sự khó khăn khi phân tích các số nguyên tố lớn. Khi lấy lại bản rõ m từ văn bản đã mã hóa tương ứng c, việc cung cấp khóa công khai tương đương với việc phân tích n, phụ thuộc vào độ dài của n.

Kích thước tốt nhất của một khóa RSA phụ thuộc vào nhu cầu bảo mật công việc của người sử dụng. Khóa càng lớn thì độ bảo mật càng lớn nhưng việc thực thi RSA lại chậm hơn. Một người cần chọn độ dài của khóa sau khi đã cân nhắc kỹ, trước tiên là xem xét nhu cầu bảo mật của mình, như giá trị của dữ liệu và dữ liệu cần bảo mật trong bao lâu; thứ hai là cần xem xem khả năng của những kẻ phá hoại

mạnh đến mức nào. Người ta tin rằng các khóa 512-bit không còn đủ an toàn với sự tiến bộ của các giải thuật phân tích mới và việc tính toán phân tán hiện nay. Những khóa này không nên sử dụng sau năm 1997 hoặc 1998. Phòng thí nghiệm RSA đã khuyến cáo độ dài của khóa hiện nay cần là 768 bits cho mục đích sử dụng của cá nhân, 1024 bits cho doanh nghiệp, và 2048 bits cho các khóa cực kỳ có giá trị [15].

Có một số cách tấn công RSA, trong đó nguy hiểm nhất là tấn công để tìm ra được khóa bí mật tương ứng với một khóa công khai cho trước, điều này cho phép kẻ tấn công không những đọc đƣợc mọi thông điệp đã đƣợc mã hóa với mã công khai mà còn giả mạo đƣợc cả chữ ký. Cách thức hiển nhiên để tấn công kiểu này là phân tích khóa công khai n thành 2 thừa số nguyên tố p q của nó. Từ p, q, và e, số mũ công khai (the public exponent), kẻ tấn công có thể dễ dàng có đƣợc d, số mũ bí mật (the private exponent). Phần khó nhất là phân tích số n, tính bảo mật của RSA dựa vào việc phân tích số n là rất khó khăn. Trên thực tế, phương pháp dễ dàng nhất là “bẻ khóa” RSA.

Cũng có thể tấn công RSA bằng việc đoán biết giá trị (p-1)(q-1). Nhƣng cách này không dễ dàng hơn cách phân tích số n.

Một khả năng khác cho kẻ tấn công là thử mọi giá trị của d cho đến khi tìm đƣợc đáp số đúng. Cách tấn công này thậm chí còn ít hiệu quả hơn cách phân tích n.

Một cách tấn công RSA khác là tìm ra kỹ thuật tính các gốc-e mod n. Khi c = me mod n

gốc-e của c mod n là thông điệp m. Cách tấn công này cho phép một người lấy lại đƣợc thông điệp đã đƣợc mã hóa và giả mạo chữ ký ngay cả khi không biết mã khóa bí mật. Cách tấn công này không được coi là tương đương với cách phân tích thừa số. Hiện chưa có một phương pháp chung nào được biết đến để tấn công RSA bằng cách này.

Cách tấn công một thông điệp đơn lẻ đơn giản nhất là đoán ra bản rõ. Kẻ tấn công có đƣợc bản mã, đoán nội dung có thể của thông điệp rồi mã hóa thông điệp phỏng đoán bằng mã công khai của người nhận, sau đó so sánh với bản mã thực sự.

Có thể ngăn chặn cách tấn công này bằng cách thêm vào thông điệp một số bit ngẫu nhiên.

Một cách tấn công thông điệp đơn lẻ có thể có là nếu ai đó gửi cùng một thông điệp m tới 3 người khác nhau, mỗi người có số mũ khóa công khai e = 3. Kẻ tấn công biết đƣợc điều này và nhìn vào 3 thông điệp có thể tìm ra bản rõ m.

2.2.3 RSA và một số hệ chuẩn

Hệ mã hóa công khai đã giải quyết đƣợc các tồn tại trong hệ mã hóa đối xứng. RSA là hệ mã hóa khóa công khai dễ hiểu và dễ cài đặt, đ-ợc sử dụng rộng rãi

để mã hóa chữ k‎ý điện tử trong th-ơng mại điện tử. RSA cú mặt trong nhiều hệ chuẩn trên thế giới nhƣ: chuẩn ISO 9796, ITU (còn gọi là CCITT) X.509 về chuẩn xác thực điện tử (digital certification standard). RSA còn có trong 5 chuẩn ETEBAC của Pháp và chuẩn về quản lý mã khóa của Australia AS2805.6.3, chuẩn ANSI X9.31 cho rút tiền trong lĩnh vực Ngân hàng Tài chính của Mỹ. RSA còn là một phần trong chuẩn của Tổ chức Truyền thông Tài chính Liên ngân hàng Toàn cầu (the Society for Worldwide Interbank Financial Telecommunications - SWIFT).

RSA là chuẩn “de facto” 1 trong lĩnh vực tài chính [15]. Sự tồn tại của chuẩn

“de facto” có vai trò rất quan trọng trong sự phát triển của thương mại điện tử qua Internet. Nếu một hệ mã công khai có thể hoạt động mọi nơi thì các văn bản với chữ ký số (chữ ký điện tử) sẽ được trao đổi giữa những người dùng trên nhiều quốc gia khác nhau trên khắp thế giới đang sử dụng những phần mềm khác nhau trên những

1Chuẩn "de facto": Một giao thức, ngôn ngữ hay khuôn dạng là chuẩn không phải vì nó đƣợc chuẩn y bởi một tổ chức tiêu chuẩn hóa nào mà vì nó đƣợc sử dụng rộng rãi và đƣợc công nhận trong công nghiệp nhƣ là một chuẩn (Ví dụ: tập lệnh điều khiển modem của Hayes, giao thức truyền thông XModem, ngôn ngữ PCL cho máy in laser của Hewlett- Packard,...). (Theo Jupitermedia Corporation, ecommerce-guide.com, http://e-comm.webopedia.com )

nền tảng kỹ thuật khác nhau. Nếu có một chuẩn về chữ ký điện tử đƣợc chấp nhận thì ta có thể có hộ chiếu, séc, di chúc, hợp đồng cho thuê, vay mượn ... dưới dạng điện tử và bản giấy sẽ chỉ còn là bản sao của văn bản điện tử gốc.

2.3 Hệ mật mã ElGamal

2.3.1 Nguyên lý hệ mật mã ElGamal

Hệ mật mã ElGamal đƣợc đề xuất năm 1985, là hệ mã hóa khóa công khai đƣợc xây dựng dựa trên bài toán logarit rời rạc. Bài toán logarit rời rạc trong một trường hữu hạn Zp với p là số nguyên tố được mô tả như sau:

Cho I =(p, , ) trong đó p là số nguyên tố,   Zp là phần tử nguyên thủy,

  Zp*. Tìm một số nguyên duy nhất a, 0  ap-2 sao cho a   (mod p).

Số a đƣợc xác định bằng log. Mô tả hệ mật mã ElGamal:

Cho p là số nguyên tố sao cho bài toán logarit rời rạc trong Zp là khó giải.

Cho   Zp* là phần tử nguyên thủy. Đặt P = Zp*, C = Zp*  Zp*. Ta định nghĩa: K = {(p, , , a) :   a (mod p)}

Với mỗi K = {(p, , , a) K , khóa công khai là K'= (p, , ), còn a là khóa bí mật.

Để lập mã ta chọn một số ngẫu nhiên bí mật k Zp-1 và tính eK'(x,k) = (y1, y2), trong đó y1 = k (mod p), y2 = xk (mod p).

Với y=(y1, y2) Zp* phép giải mã đƣợc xác định bởi dK''(y) = y2(y1a)-1 mod p.

Bản rõ x đƣợc che dấu bằng cách nhân x với k để tạo ra y2. Giá trị y1 = k cũng được gửi đi như một phần của bản mã. Bob là người biết số mũ bí mật a có thể tính đƣợc k từ k. Sau đó anh ta sẽ tính ra x bằng cách nhân y2 với -k để thu đƣợc x.

Hệ mật mã ElGamal là một hệ 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) = 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 đối với người thám mã.

2.3.2 An toàn của hệ ElGamal

Hệ mật mã 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 mã 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, luỹ thừa theo modulo p là hàm một chiều với các số nguyên tố p thích hợp.

Bài toán logarit rời rạc trong Zp là đối tƣợng trong nhiều công trình 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ông có một thuật toán thời gian đa thức nào cho bài toán logarit rời rạc [3].

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,  là phần tử nguyên thủy theo modulo p sao cho bài toán tính log 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.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xây dựng hệ thống bảo mật internet banking ngân hàng công thương ở Việt Nam (Trang 22 - 26)

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

(93 trang)