Phép cộng hai số có dấu được thực hiện dựa trên phép so sánh, phép cộng và phép trừ hai số không âm đã trình bảy. Dấu của số lớn được lưu bít cao nhất của số lớn
Thuật toán cộng hai số lớn có dấu được thực hiện như sau: Input: Hai số lớn x, y
Output: z = x + y; Algorithm:
1. If (x, y cùng dấu) 1.1.z = x + y;
2. if (x dương) // y âm 2.1. If(s = Sơsanh(x,y)!=0) Retum z = x - y; 2.2. If(s==0) z = y - x; Đặt z cùng dấu với y; return z; 3. if (x âm) // y dương
3.1.if((s = Sosanh (x,y))==0) Retum z = y - x; 3.2 if(sl==0) z = x.y; Đặt z cùng dấu với x; Retum z 4.2.11 Phép trừ có dấu
Phép trừ hai số có dấu được thực hiện dựa trên phép cộng hai số có. Cụ thể: Input: Hai số lớn x, y
Output: z = x -y Algorithm:
1. Đổi dấu của y;
2. Cộng có dấu z = x + y; 3. retum z;
4.3.12 Phép nhân có dấu
Phép nhân hai số có dấu được thực hiện dựa trên phép nhân hai số không âm đã được trình bày ở trên. Thuật toán nhân hai số có dấu như sau:
Input: Hai số lớn x, y Output: z = x * y; Algorithm:
1. If (x, y cùng dấu) return z = x.y; 2. If(x, y khác dấu)
z = x.y; Đổi dấu z; 3. Return z;
Chương 5 - PHƯƠNG PHÁP TẤN CÔNG BẰNG NHÂN TỬ HOÁ SỐ N SỬ DỤNG ĐỊNH LÝ FERMAT 5.1 Bổ đề 1
Giả sử rằng n=p.q với p#q là hai số nguyên tố lẻ. Ngoài ra ta giả thiết rằng p < q. Khi đó:
i/ p < n < q
ii/ Số p gần n hơn số q. Tức là giả sử α , β > 0 sao cho: p + α = n = q - β, khi đó α < β
Chứng minh:
ii/ Từ kết quả ở i/ ta suy ra có tồn tại hai số dương α , β sao cho: p = n - α và q = n + β Từ đó: n = p.q = ( n - α )( n + β) = n - α n + β n - α β Hay: (β - α ) n - α β =0 (1) (β - α ) n = α β hay n = α β β - α Do α , β > 0 và n > 0 nên β - α > 0 => β # α vì nếu β = α thì từ (1) ta suy ra α β = 0. T
Từ đó hoặc α = 0 hoặc β = 0. Nhưng nếu α = 0 thì p = n vô lý, tương tự nếu
β = 0 thì q = n cũng vô lý. Mệnh đề được chứng minh
Từ bổ đề 1 ta suy ra rằng giữa hai nhân tử nguyên tố của số n thì nhân tử bé hơn p gần n hơn so với số q.
5.2 Định lý Fermat
Định lý 7 Fermat: Giả sử n là một số nguyên dương lẻ có dạng n = p.q. trong đó
p≤q và p, q là các số nguyên tố. Khi đó biểu thức n có thể được viết dưới dạng: n = t2 – s2
(t, s là các số nguyên dương). Các số nguyên t, s, p và q có mối quan hệ: t = p2+q và s =
2
p q−
Phương pháp này được xây dựng dựa trên định lý Fermat, cụ thể: (6) Đặt x = 2. N + 1, y = 1, r = 2 N - n. (7) If r ≤0 go to (4) (8) r = r – y, y = y+2 goto (2)
(9) If r =0 then thuật toán dừng Khi đó chúng ta sẽ có:
n = − +2− 2 2 y x y x
{Đây chính là hai nhân tử của n(p,q)} và 2 y x− là phân số có giá trị lớn nhất ≤ N (10) r = r + x x = x+2 goto (3) Ví dụ: Cho n = 9401 x = 2. N + 1 = 193 y = 1, r = 2 N - n = -185
Duyệt từ trên xuống dưới từ trái qua phải theo cột r, y, x
R Y X R Y X R Y X -185 1 193 167 13 197 7 29 197 8 1 195 154 15 197 -22 31 197 7 3 195 139 17 197 175 31 199 4 5 195 122 19 197 144 33 199 -1 7 195 103 21 197 111 35 199 194 7 197 82 23 197 76 37 199 187 9 197 59 25 197 39 39 199 178 11 197 34 27 197 0 41 199 vậy
n = 9401 = − +2− 2 2 y x y x = − +2 − 2 41 199 2 41 199 = 79. 119 p = 79 q = 119 KẾT LUẬN
Hơn hai thập niên nghiên cứu vào các bài toán tính toàn về RSA để tìm sự tấn công hiệu quả nhưng không có một tấn công hiệu quả nào được tìm ra. Những sự tấn công được khám phá cho đến nay chủ yếu minh hoạ các cạm bẫy phải tránh trong quá trình cài đặt RSA. Lúc này có vẻ như sự cài đặt đúng cách có thể đảm bảo được an ninh trong thế giới số.
Chúng ta phân loại tấn công RSA ra thành 5 loại:
Tấn cơ bản khai thác sự sai sót của hệ thống
Tấn công khoá riêng có số mũ thấp không đủ, khoá riêng có số mũ thấp không bao giờ được sử dụng.
Tấn công khoá công khai có số mũ thấp Tấn công trong cài đặt
Hệ mật mã RSA đựơc cài đặt và triển khai đúng theo chuẩn mà các nhà phát triển RSA đã khuyến cáo có độ an toàn cao. Nhưng ngày nay với sự phát triển rất nhanh của các hệ tính toán số hứa hẹn trong tương lai sẽ có một cuộc chạy đua giữa các hệ tính toán số với các nhà phát triển RSA
TÀI LIỆU THAM KHẢO
Tài liệu tiếng việt:
[1] Đặng Văn Cương - Vấn đề an toàn của hệ mật mã khoá công khai - Luận văn thạc sĩ, Khoa công nghệ thông tin - Đại học công nghệ 2003
[2] Nguyễn Thị Miền – Thanh toán từ xa – Luận văn đại học, Khoa công nghệ thông tin - Đại học công nghệ 2008
[3] Nguyễn Minh Hải - Đấu thầu từ xa - Luận văn đại học, Khoa công nghệ thông tin - Đại học công nghệ 2008
[4] Đặn Thị Lan Hương - Vấn đề an toàn thông tin trong thương mại điện tử - Luận văn đại học, Khoa công nghệ thông tin - Đại học công nghệ 2008
[5] Phan Đình Diệu – Lý thuyết mật mã và an toàn thông tin, Đại học quốc gia Hà Nội 2002
[6] Trịnh Nhật Tiến – Giáo trình an toàn dữ liệu – Khoa công nghệ thông tin, Đại học quốc gia Hà Nội
Tài liệu tiếng anh:
[7] D.Bleichenbacher. Chosen ciphertext attacks against protocols based on the RSA encryption standard PKCS #1
[8] D.Boneh, R.Demillo, and R.Lipton. On the importance of checking cryptographic protocols for faults.
[9] D.Boneh and G.Durfee. New results on cryptanalysis of low private exponent RSA. Preprint, 1998
[10] Mark Stamp Richard M.Low: “Applied Cryptanalysis”, A John Wiley & Sons INC publication, San Jose state University, San Jose CA 2007
[11] M. Wiener. Cryptanalysis of short RSA secret exponents. IEEE Transactions on Information Theory, 1990
[12] Neal Koblitz: “ A course in Number theory and Cryptography” New York, Berlin Heidelberg, London, Paris, Tokyo, 1987
[13] J. Hastad. Solving simultaneous modular equation of low degree. SIAM J. of Computing, 1988
[14] http://www.RSA.com
[15] http://www.RSAsercurity.com
[16] S. Goldwasser. The search for provably secure cryptosystems. In Cryptology and computational number theory, volume 42 of Proceeding of the 42nd Symposium in Applied Mathematics. American Mathematical Society, 1990