Tải bản đầy đủ (.doc) (34 trang)

Tìm hiểu về hệ mã hóa khóa công khai RSA và hệ đường cong Elliptic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (577.87 KB, 34 trang )

Lý thuyết mã hóa thông tin
NHÓM 6
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN
Môn:Lý thuyết mã hóa thông tin
Đề tài: Tìm hiểu về hệ mã hóa khóa công khai RSA và hệ đường cong Elliptic
G.V hướng dẫn:GV.Mai Thanh Hồng
Nhóm thực hiện: NHÓM 22 KHMT3-K3
1. Đào Xuân Đức
2. Nguyễn Thị Thu Hà
3. Đỗ Quốc Vinh
Hà nội,ngày 15 tháng 11 năm 2011
1
Lý thuyết mã hóa thông tin
NHÓM 6
Mục lục
LỜI MỞ ĐẦU 3
PHẦN I: HỆ MÃ HÓA RSA 4
I. Giới thiệu hệ mã hóa RSA 4
II. Hệ mật mã RSA 5
1.Khái niệm 5
2. Chi tiết các bước thực hiện mã hóa: 7
3. Độ an toàn của hệ RSA 13
4. Một số tính chất của hệ RSA 14
6. Đánh giá RSA 17
III. Chương trình sử dụng hệ mật mã RSA 18
PHẦN II: HỆ MẬT ĐƯỜNG CONG ELLIPTIC 18
I. Cơ sở toán học 18
1. Phương trình đồng dư bậc 2 và thặng dư bậc 2 18


2. Tiêu chuẩn Euler 18
3.Định lý 1: 19
II:Đường cong Elliptic 20
1.Định nghĩa 20
2.Giới thiệu một số hệ đường cong Elliptic trên trường số thực 21
3.Tính chất của đường cong Elliptic: 23
4.Đường cong Elliptic trên trường hữu hạn 23
5.Các phép toán trên đường cong Elliptic: 24
III: Hệ mật đường cong Elliptic 28
1.Đặt vấn đề: 28
2.Nhúng bản rõ lên đường cong 28
3. Logarit rời rạc trên đường cong Elliptic 29
4.Vấn đề trao đổi khoá Diffie- Hellman(D- H) trên Elliptic 30
5.Hệ mật mã hóa Elgamal trên đường cong Elliptic 30
6. Một số chuẩn sử dụng hệ mật Eliptic 31
7.Đánh giá hệ mật đường cong Elliptic 31
2
Lý thuyết mã hóa thông tin
NHÓM 6
IV.Tổng kết 32
LỜI MỞ ĐẦU
Thế kỷ XXI thế kỷ công nghệ thông tin, thông tin đã và đang tác động trực tiếp
đến mọi mặt hoạt động kinh tế xã hội của hầu hết các quốc gia trên thế giới. Thông tin
có một vai trò hết sức quan trọng, bởi vậy chúng ta phải làm sao đảm bảo được tính
trong suốt của thông tin nghĩa là thông tin không bị sai lệch, bị thay đổi, bị lộ trong
3
Lý thuyết mã hóa thông tin
NHÓM 6
quá trình truyền từ nơi gửi đến nơi nhận. Với sự phát triển rất nhanh của công nghệ
mạng máy tính đặc biệt là mạng INTERNET thì khối lượng thông tin ngày càng

chuyển tải nhiều hơn. Những tập đoàn công nghiệp, những công ty đa quốc gia, thị
trường chứng khoán tiến hành xử lý và truyền nhận những thông tin đắt giá, những
phiên giao dịch hay mua bán cổ phiếu, trái phiếu đều được tiến hành qua mạng.
Giờ đây với sự tăng trưởng nhanh của các siêu thị điện tử, thương mại điện tử thì hàng
ngày có một khối lượng tiền rất lớn được lưu chuyển trên mạng toàn cầu
INTERNET, vấn đề khó khăn đặt ra là làm sao giữ được thông tin bí mật và giữ cho
tiền đến đúng được địa chỉ cần đến.
Bạn sẽ ra sao nếu như bạn gửi thư cho một người bạn nhưng lại bị một kẻ lạ mặt
nào đó xem trộm và sửa đổi nội dung bức thư trái với chủ ý của bạn, tệ hại hơn nữa là
khi bạn ký một hợp đồng, gửi thông qua mạng và lại bị kẻ xấu sửa đổi những điều
khoản trong đó, và sẽ còn nhiều điều tương tự như vậy nữa Hậu quả sẽ như thế nào
nhỉ ? Bạn bị người khác hiểu nhầm vì nội dung bức thư bị thay đổi, còn hợp đồng bị
phá vỡ bởi những điều khoản đã không còn nguyên vẹn. Như vậy là cả tình cảm, tiền
bạc của bạn và nói rộng hơn là cả sự nghiệp của bạn đều bị đe dọa nếu như những
thông tin mà bạn gửi đi không đảm bảo được tính nguyên vẹn của chúng. Mã hoá
thông tin là một trong các phương pháp đảm bảo được tính trong suốt của thông tin.
Nó có thể giải quyết các vấn rắc rối ở trên giúp bạn, một khi thông tin đã được mã hoá
và gửi đi thì kẻ xấu rất khó hoặc không thể giải mã được.
Với mong muốn phục vụ những thông tin được truyền đi trên mạng
được nguyên vẹn .Nhiều phương pháp được tạo ra nhằm tối ưu sự bảo mật, nổi bật
hơn cả là 2 phương pháp mã hóa khóa công khai là RSA và hệ mật đường cong
Elliptic với độ an toàn cao được trình bày dưới đây.
PHẦN I: HỆ MÃ HÓA RSA
I. Giới thiệu hệ mã hóa RSA
Với đề tài xây dựng thư viện các hàm mã hoá dùng cho việc bảo mật thông
tin trao đổi trong mô hình Client/Server, thì cần thiết một phương pháp mã
hoá để áp dụng, thuật toán mã hoá công khai RSA đã được lựa chọn cho giải
pháp này. Phương pháp này có những ưu điểm, nhược điểm, đặc tính gì đó
4
Lý thuyết mã hóa thông tin

NHÓM 6
là phần sẽ trình bày trong chương này
* Khái niệm hệ mật mã RSA
* Phân phối khoá công kkai trong RSA
* Độ an toàn của hệ RSA
* Một số tính chất của hệ RSA
II. Hệ mật mã RSA
1.Khái niệm
Khái niệm hệ mật mã RSA đã được ra đời năm 1976 bởi các tác giả R.Rivets,
A.Shamir, và L.Adleman. Hệ mã hoá này dựa trên cơ sở của hai bài toán :
+ Bài toán Logarithm rời rạc (Discrete logarith)
+ Bài toán phân tích thành thừa số.
Trong hệ mã hoá RSA các bản rõ,các bản mã và các khoá (public key và private key)
là thuộc tập số nguyên ZN = {1, . . . , N-1}. Trong đó tập ZN với N=p×q là các ốs
nguyên tố khác nhau cùng với phép cộng và phép nhân .
Modulo N tạo ra modulo số học N.
Khoá mã hoá EKB là cặp số nguyên (N,KB) và khoá giải mã D kB là cặp số nguyên
(N,kB), các số là rất lớn, số N có thể lên tới hàng trăm chữ số.
Các phương pháp mã hoá và giải mã là rất dễ dàng.
Công việc mã hoá là sự biến đổi bản rõ P (Plaintext) thàn h bản mã C
(Ciphertext) dựa trên cặp khoá công khai KB và bản rõ P theo công thức sau đây :
Công việc giải mã là sự biến đổi ngược lại bản mã C thành bản rõ P dựa trên cặp khoá
bí mật kB , modulo N theo công thức sau :
5
Lý thuyết mã hóa thông tin
NHÓM 6
Dễ thấy rằng, bản rõ ban đầu cần được biến đổi một cách thích hợp thành bản mã, sau
đó để có thể tái tạo lại bản rõ ban đầu từ chính bản mã đó :
Thay thế (1) vào (2) ta có :
Trong toán học đã chứng minh được rằng, nếu N là số nguyên tố thì công thức (4) sẽ

có lời giải khi và chỉ khi KB.kB = 1 (mod N-1), áp dụng thuật toán ta thấy N=p×q
với p, q là số nguyên tố, do vậy (4) sẽ có lời giải khi và chỉ khi :
KB.kB ≡1 (mod γ(N)) (5)
trong đó γ(N) = LCM(p-1,q-1) .
LCM (Lest Common Multiple) là bội số chung nhỏ nhất.
Nói một cách khác, đầu tiên người nhận B lựa chọn một khoá công khai KB
một cách ngẫu nhiên. Khi đó khoá bí mật kB được tính ra bằng công thức
(5). Điều này hoàn toàn tính được vì khi B biết được cặp số nguyên tố (p,q)
thì sẽ tính được γ(N).
6
Lý thuyết mã hóa thông tin
NHÓM 6
Hình 1. Sơ đồ các bước thực hiện mã hoá theo thuật toán RSA.
2. Chi tiết các bước thực hiện mã hóa:
2.1 Tạo khóa RSA
Mỗi bên tự tạo ra một cặp khóa công khai-khóa riêng theo các bước sau:
B1.Chọn ngẫu nhiên 2 số nguyên tố đủ lớn p#q
B2.Tính n=pq
B3.Tính .
7
Lý thuyết mã hóa thông tin
NHÓM 6
B4.Chọn ngẫu nhiên khóa mã hóa e sao cho và là
số nguyên tố cùng nhau với .
B5.Tính khóa giải mã: d <= n sao cho .
Một số lưu ý:
• Các số nguyên tố thường được chọn bằng phương pháp thử xác suất.
• Các bước 4 và 5 có thể được thực hiện bằng giải thuật Euclid mở rộng (xem
thêm: số học môđun).
• Bước 5 có thể viết cách khác: Tìm số tự nhiên sao cho

cũng là số tự nhiên. Khi đó sử dụng giá trị
.
• Từ bước 3, PKCS#1 v2.1 sử dụng thay cho
.
Công bố khóa mã hóa công khai KU={e,n} trong đó:
e : Số mũ công khai hay số mũ mã hóa
n :Modul
Giữ khóa bí mật giải mã riêng KR={d,n} trong đó:
n :Modul
d :Số mũ bí mật hay số mũ giả mã
Các mã bí mật p,q bị hủy bỏ
Một dạng khác của khóa bí mật bao gồm:
+ p, q :2 số nguyên tố chọn ban đầu
+ d mod(p-1) và d mod(q-1)
+(1/q) mod p (thường gọi là iqmp)
8
Lý thuyết mã hóa thông tin
NHÓM 6
Dạng này cho phép thực hiện giả mã và ký nhanh hơn với việc sử dụng Định lý số dư
Trung Quốc.Ở dạng này tất cả các thành phần của khóa bí mật phải được giữ bí mật.
Alice gửi khóa công khai cho Bob, và giữ bí mật khóa cá nhân của mình. Ở đây, p và
q giữ vai trò rất quan trọng. Chúng là các phân tố của n và cho phép tính d khi biết e.
Nếu không sử dụng dạng sau của khóa bí mật (dạng CRT) thì p và q sẽ được xóa ngay
sau khi thực hiện xong quá trình tạo khóa.
2.2:Mã hóa
Giả sử Bob muốn gửi đoạn thông tin M cho Alice. Đầu tiên Bob chuyển M
thành một số m < n theo một hàm có thể đảo ngược (từ m có thể xác định lại M) được
thỏa thuận trước.
Lúc này Bob có m và biết n cũng như e do Alice gửi. Bob sẽ tính c là bản mã hóa của
m theo công thức:

Hàm trên có thể tính dễ dàng sử dụng phương pháp tính hàm mũ (theo môđun) bằng
(thuật toán bình phương và nhân) Cuối cùng Bob gửi c cho Alice.
2.3.Giải mã
Alice nhận c từ Bob và biết khóa bí mật d. Alice có thể tìm được m từ c theo công
thức sau:
Biết m, Alice tìm lại M theo phương pháp đã thỏa thuận trước. Quá trình giải mã hoạt
động vì ta có
.
Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1), (theo Định lý Fermat nhỏ) nên:

9
Lý thuyết mã hóa thông tin
NHÓM 6
Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý số dư Trung Quốc, ta có:
.
hay:
2.4:Ví dụ
*/ Tạo khóa RSA
+Chọn 2 số nguyên tố p=17 và q=11
+Tính n=pq=17*11=187
+Tính =16*10=160
+Chọn e=gcd(e,160)=1 và 1<e<160; lấy e=7
+Xác định d: de = 1 mod 160 và d<=187
Giá trị d=23 vì 23*7=161=1*160+1
+Công bố khóa công khai KU={7,187}
+Giữ bí mật khóa riêng KR={23,187}
_Hủy bỏ các giá trị bí mật p=17 và q=11
*/ Thực hiện RSA
10
Lý thuyết mã hóa thông tin

NHÓM 6
Hình2.Mô tả thực hiện RSA
*/ Lưu ý về việc chọn tham số trong mã hóa RSA:
+Cần chọn p, q đủ lớn
+Thường chọn e nhỏ
+Thường có thể chọn cùng giá trị của e cho tất cả người dung
+Trước đây ta hay lấy giá trị của e là 3nhưng hiện nay thì nó lại được
coi là quá nhỏ
+Thường chọn e= 2
16
-1=65535
+Giá trị của d sẽ lớn và khó đoán
Xét ví dụ sau :
p= 61 <- số nguyên tố đầu tiên
q = 53 <- số nguyêntố thứ hai
p và q phải được giữ bí mật .
m=p*q = 3233
e = 17
e và m được thông báo công khai .
ta tìm được nghịch đảo của 17 modulo Φ(3233) là
d = 2753
11
Lý thuyết mã hóa thông tin
NHÓM 6
d phải được giữ bí mật .
Chìa khóa công cộng là (e ,m).
Chìa khóa riêng là (e,m).
Hàm số mã hóa là:
mãhoá(P) ≡ (P^e) mod m
≡ (P^17) mod 3233

Hàm số giải mã là:
giảimã(C) ≡ (C^d) mod m
≡ (C^2753) mod 3233
Để mã hoá số “123”, làm như sau:
mãhoá(123) ≡ (123^17) (mod 3233 )
≡ 337587917446653715596592958817679803 (mod 3233 )
≡ 855
Như thế “123” được mã hóa thành “855”
Để giải mã “855”, làm như sau :
giảimã(855) ≡ (855^2753) ( mod 3233 )
≡ 123
Viết kết quả ngay ra đây, thì các bạn thấy qúa dễ dàng.
Vấn đề ở chỗ là tìm ra trị số của 855 khi được nâng lên luỹ thừa 2753 .
Đây là chỗ mà ta áp dụng phương pháp bình phương liên tiếp :
ta có 2753 = 1010110000012
2753 = 1 + 2^6 + 2^7 + 2^9 + 2^11
= 1 + 64 + 128 + 512 + 2048
Xét bản luỹ thừa sau đây của 855:
855^1 ≡ 855 (mod 3233)
855^2 ≡ 367 (mod 3233)
855^4 ≡ 367^2 (mod 3233) ≡ 2136 (mod 3233)
855^8 ≡ 2136^2 (mod 3233) ≡ 733 (mod 3233)
855^16 ≡ 733^2 (mod 3233) ≡ 611 (mod 3233)
855^32 ≡ 611^2 (mod 3233) ≡ 1526 (mod 3233)
855^64 ≡1526^2 (mod 3233) ≡ 916 (mod 3233)
855^128 ≡ 916^2 (mod 3233) ≡ 1709 (mod 3233)
855^256 ≡ 1709^2 (mod 3233) ≡ 1282 (mod 3233)
855^512 ≡ 1282^2 (mod 3233) ≡ 1160 (mod 3233)
12
Lý thuyết mã hóa thông tin

NHÓM 6
855^1024 ≡ 1160^2 (mod 3233) ≡ 672 (mod 3233)
855^2048 ≡ 672^2 (mod 3233) ≡ 2197 (mod 3233)
Vậy:
855^2753 (mod 3233)
≡ 855^(1 + 64 + 128 + 512 + 2048) (mod 3233)
≡ 855^1 * 855^64 * 855^128 * 855^512 * 855^2048 (mod 3233)
≡ 855 * 916 * 1709 * 1160 * 2197 (mod 3233)
≡ 794 * 1709 * 1160 * 2197 (mod 3233)
≡ 2319 * 1160 * 2197 (mod 3233)
≡ 184 * 2197 (mod 3233)
≡ 123 (mod 3233)
≡ 123
Đây cũng chính là cách mà các máy tính của chúng ta làm việc để tính lũy thừa các số
nguyên .
Ưu điểm của nó là không bao giờ phải làm việc với nhũng số lớn hơn ( m – 1 )^2 .
Nếu các bạn có một chương trình điện toán như “bc” có sẵn trong Linux ,bạn có thể
tính 855^2753 mod 3233 trực tiếp như sau: 855^2753 mod 3233
Đây là kết quả :
855^2753 mod 3233
≡ 50432888958416068734422899127394466631453878360035
509315554967564501055628612082559978744245428110054383498654289336384
930246451441507851720917966547826353070996380353873265008966860747718
297458229503429504079035818459409563779385865989368838083602840132509
768620766977396… 542349304247490536939927761142617964071001276432804
28706083531594582305946326827861270203356980346143245697021484375
mod 3233
≡ 123
Kết quả là một số với 8072 chữ số.
Đó mới chỉ với hai số P =61 và Q =53 .

3. Độ an toàn của hệ RSA
Một nhận định chung là tất cả các cuộc tấn công giải mã đều mang
mục đích không tốt. Trong phần độ an toàn của hệ mã hoá RSA sẽ đề cập đến một
vài phương thức tấn công điển hình của kẻ địch nhằm giải mã trong
13
Lý thuyết mã hóa thông tin
NHÓM 6
thuật toán này.
Chúng ta xét đến trường hợp khi kẻ địch nào đó biết được modulo N, khoá công
khai KB và bản tin mã hoá C, khi đó kẻ địch sẽ tìm ra bản tin gốc (Plaintext) như thế
nào. Để làm được điều đó kẻ địch thường tấn vào hệ thống mật mã bằng hai
phương thức sau đây:
 Phương thức thứ nhất :
Trước tiên dựa vào phân tích thừa số modulo N. Tiếp theo sau chúng sẽ tìm cách
tính toán ra hai số nguyên tố p và q, và có khả năng thành công khi đó sẽ tính được
λ(N) và khoá bí mật k B. Ta thấy N cần phải là tích của hai số nguyên tố, vì nếu N là
tích của hai số nguyên tố thì thuật toán phân tích thừa số đơn giản cần tối đa N bước,
bởi vì có một số nguyên tố nhỏ hơn N .
Mặt khác, nếu N là tích của n số nguyên tố, thì thuật toán phân tích thừa số đơn giản
cần tối đa N1/n bước.
Một thuật toán phân tích thừa số có thể thành phức tạp hơn, cho phép phân tích một số
N ra thành thừa số trong O( P ) bước, trong đó p là số chia nhỏ nhất của N, việc chọn
hai số nguyên tố là cho thuật toán tăng hiệu quả.
 Phương thức thứ hai :
Phương thức tấn công thứ hai vào hệ mã hoá RSA là có thể khởi đầu bằng cách giải
quyết trường hợp thích hợp của bài toán logarit rời rạc. Trường hợp này kẻ địch
đã có trong tay bản mã C và khoá công khai KB tức là có cặp (KB,C)
Cả hai phương thức tấn công đều cần một số bước cơ bản, đó là :
O(exp lnNln(lnN) ), trong đó N là số modulo.
4. Một số tính chất của hệ RSA

1. Trong các hệ mật mã RSA, một bản tin có thể được mã hoá trong thời gian
tuyến tính.
Đối với các bản tin dài, độ dài của các số được dùng cho các khoá có thể được
coi như là hằng. Tương tự như vậy, nâng một số lên luỹ thừa được thực hiện
trong thời gian hằng, các số không được phép dài hơn một độ dài hằng. Thực ra tham
số này che dấu nhiều chi tiết cài đặt có liên quan đến việc tính toán với các con số
14
Lý thuyết mã hóa thông tin
NHÓM 6
dài, chi phí của các phép toán thực sự là một yếu tố ngăn cản sự phổ biến ứng
dụng của phương pháp này. Phần quan trọng nhất của việc tính toán có liên quan
đến việc mã hoá bản tin. Nhưng chắc chắn là sẽ không có hệ mã hoá nào hết nếu
không tính ra được các khoá của chúng là các số lớn.
2.Các khoá cho hệ mã hoá RSA có thể được tạo ra mà không phải tính toán quá
nhiều.
Một lần nữa, ta lại nói đến các phương pháp kiểm tra số nguyên tố. Mỗi số
nguyên tố lớn có thể được phát sinh bằng cách đầu tiên tạo ra một số ngẫu nhiên lớn,
sau đó kiểm tra các số kế tiếp cho tới khi tìm được một số nguyên tố. Một phương
pháp đơn giản thực hiện một phép tính trên một con số ngấu nhiên, với xác suất 1/2
sẽ chứng minh rằng số đ ược kiểm tra không phải nguyên tố. Bước cuối cùng là tính p
dựa vào thuật toán Euclid.
Như phần trên đã trình bày trong hệ mã hoá công khai thì khoá giải mã
(private key) kB và các thừa số p,q là được giữ bí mật và sự thành công của phương
pháp là tuỳ thuộc vào kẻ địch có khả năng tìm ra được giá trị của k B hay không nếu
cho trước N và KB. Rất khó có thể tìm ra được kB từ KB cần biết về p và q, như vậy
cần phân tích N ra thành thừa số để tính p và q.
Nhưng việc phân tích ra thừa số là một việc làm tốn rất nhiều thời gian, với kỹ thuật
hiện đại ngày nay thì cần tới hàng triệu năm để phân tích một số có 200 chữ số ra thừa
số.
Độ an toàn của thuật toán RSA dựa trên cơ sở những khó khăn của việc xác định

các thừa số nguyên tố của một số lớn. Bảng dưới đây cho biết các thời gian dự đoán,
giả sử rằng mỗi phép toán thực hiện trong một micro giây.
15
Lý thuyết mã hóa thông tin
NHÓM 6
5. Một số biến thể của hệ mã hóa RSA
Hệ mã RSA là một hệ mã có tính an toàn rất cao . Nhưng nó có một nhược
điểm lớn là tốc độ mã hóa chậm (nhất là so với các hệ mã đối xứng có cùng độ an
toàn ). Bởi vậy nó chỉ được sử dụng với các văn bản ngắn , và thường dùng trong giao
thức xác nhận chủ thể mà ta sẽ nói qua dưới đây .
Xác nhận chủ thể là việc đảm bảo khi người nhận có được mật thư thì biết chắc chắn
ai là tác giả bức thư đó . Và cũng đảm bảo việc không ai có thể mạo danh người khác
để gửi thư.
Để làm được điều đó , khi anh U muốn gửi bức thư P cho anh V . Đầu tiên anh
U dùng khóa lập mã Ev ( được công khai của anh V ) để mã hóa P thu được Ev ( P ) .
Sau đó dùng khóa giải mã của mình là Du ( bí mật ) để tính Du (Ev ( P )) = C và gửi
đi .
Sau khi nhận được mật thư C , anh V sẽ dùng khóa lập mã của anh U là Eu
( công khai ) đế tính Eu (C) = Eu (Du (Ev ( P ))) = Ev ( P ) ( do Eu là hàm ngược của
Du )
Cuối cùng dùng khóa giải mã bí mật Dv để tính ra Dv (Ev ( P )) = P chính là bức thư
ban đầu .
Rõ ràng với cách này chúng ta chỉ có thể áp dụng với những văn bản ngắn ,còn
khi văn bản dài chúng ta phải áp dụng một phương pháp biến thể từ phương pháp
trên , đó là sử dụng hàm băm . Ở đây ta chỉ nói sơ qua về hàm băm vì nó vượt quá nội
dung của bài này .
Ta chỉ biết đó là một hàm đựơc công khai trên toàn hệ thống . Khi cần gửi văn
16
Lý thuyết mã hóa thông tin
NHÓM 6

bản , người ta sẽ gửi kèm theo bản giá trị băm của văn bản , sau khi nhận được người
ta sẽ băm văn bản lại lần nữa và so sánh với giá trị băm của bên gửi , nếu trùng khớp
thì có thể khẳng định văn bản đã không bị thay đổi trên đường đi …
6. Đánh giá RSA
1.RSA đơn giản, dễ hiểu, dễ cài đặt.
2.Hiệu suất hoạt động : RSAchạy chậm do việc phát sinh khóa công khai-khóa
bí mật hay quá trình mã hóa-giải mã tốn nhiều thời gian vì phải tính toán trên các số
nguyên dương cực lớn, có chiều dài vượt quá khả năng chứa của thanh ghi nên phải
giả lập, thực hiện lại nhiều lần và sử dụng nhiều đến bộ xử lý.Do đó,Rsa không được
sử dụng vào mục đích mã hóa các khối lượng dữ liệu lớn mà chỉ ứng dụng trong chữ
ký điện tử để mã hóa thông điệp ngắn đã qua hàm băm, giả thuật trao đổi khóa bí
mật(khóa dùng cho các hệ thống mã hóa đối xứng-hay khóa riêng), hay chỉ mã hóa
một lượng dữ lệu nhỏ.
3.Tính bảo mật:Như đã trình bày ở trên , độ an toàn của RSA dựa tren bài toán
phân tích ra thừa số nguyên tố.Do đó, chiều dài số càng lớn thì càng khó phân ticchs
ra thừa số nguyên tố.
Dù là hệ mã công khai xuất hiện đầu tiên , nhưng cho đến nay hệ mã RSA vẫn
cho thấy làmột hệ mã rất an toàn . Tính an toàn của nó dựa trên bài toán Phân tích số
nguyên .
Mà thuật toán phân tích một số nguyên m thành thừa số lại cần đến một thời gian
tăng theo cấp số luỹ thừa so với chiều dài của m . Nghĩa là nếu chỉ thêm cho m vài ký
tự, thời gian cần để đặt m thành thừà số sẽ tăng gấp đôi. Vì khi thêm vài ký tự vào R
là làm cho nó lớn thêm hàng trăm hay ngàn lần nhiều hơn, tức là gia tăng danh sách
các cặp thừa số có thề dùng làm p và q .
Vậy nếu giả như bất ngờ có ai tìm ra được một kỹ thuật mới giúp cho việc đặt
thành thừa số có thể thực hiện hàng tỷ tỷ lần nhanh hơn, thì ta chỉ cần chọn một số m
khác dài hơn chừng mười ký tự, tình trạng sẽ trở lại như ban đầu
Thuật toán RSA chỉ bị phá vỡ khi tìm được một cách nào đó cho ta trực tiếp các thừa
số nguyên tố của một số . Cho đến bây giờ việc đó chưa được chứng minh là bất khả.
Nhưng nếu chúng ta biết rằng các số nguyên tố đã được nghiên cứu từ cả ngàn năm

nay, và trong vòng vài thập niên qua được nghiên cứu rầm rộ trở lại. thì câu trả lời có
vẻ còn rất xa vời. Nhưng nếu tìm ra được một phương pháp như thế, thì thuật toán mã
hoá sẽ bị thay đổi toàn diện .
17
Lý thuyết mã hóa thông tin
NHÓM 6
Sau khi hệ mã RSA xuất hiện , đã có rất nhiều hệ mã công khai khác được ra đời
với rất nhiều cải tiến . Và với sự phát triển của mật mã khóa công khai , có lẽ sẽ có lúc
việc mã hóa không còn là việc xa lạ với mọi người nữa , mà có thể mã hóa sẽ được áp
dụng rộng rãi trong đời sống chúng ta . Có thể lúc đó , trong danh thiếp của mỗi người
, ngoài số điện thoại và địa chỉ , còn có thêm khóa lập mã của họ.
III. Chương trình sử dụng hệ mật mã RSA
PHẦN II: HỆ MẬT ĐƯỜNG CONG ELLIPTIC
I. Cơ sở toán học
1. Phương trình đồng dư bậc 2 và thặng dư bậc 2
Ta xét phương trình đồng dư bậc 2 có dạng như sau:
Trong đó n là số nguyên dương, a là số nguyên với gcd(a,n) 1,và x là ẩn số.Phương
trình đó không phải bao giờ cũng có nghiệm,khi nó có nghiệm thí ta gọi a là thặng dư
bậc 2 mod n.Ngược lại thì a gọi là một bất phương trình thặng dư bậc 2 mod n.
Tập các số nguyên tố với n được phân hoạch thành 2 tập con.Tập Q
n
Các thặng dư bậc 2 mod n, và tập các bất thặng dư bậc 2 mod n.
2. Tiêu chuẩn Euler
Khi p là số nguyên tố, số a là thặng dư bậc 2 mod p nếu và chỉ nếu a
(p-1)/2
1(mod p)
Ký hiệu Lengendre
Cho p là một số nguyên tố, với p>2, số a>=0 là số nguyên .Ta đinh nghĩa (
a/p) như sau:
18

Lý thuyết mã hóa thông tin
NHÓM 6
Chú ý:
+Từ định nghĩa suy ra a là thặng dư bậc 2 khi mod p khi và chỉ khi (a/p)=1
+Theo tiêu chuẩn Euler nói trên , với mọi a>=0 ta có:
Lengendre Symbol thỏa mãn các tính chất sau:
1.(a/p) chỉ phụ thuộc vào đồng dư của a theo mod p.
3.b nguyên tố với p thì (ab
2
/ p)=(a / p);
4. (1 / p) =1 và (-1 / p)= (-1)
(p-1)/2
3.Định lý 1:
Định lý gọi là luât thuận nghịch bình phương.
Cho p,q là 2 số nguyên tố lẻ, khi đó:
19
Lý thuyết mã hóa thông tin
NHÓM 6
II:Đường cong Elliptic
1.Định nghĩa.
Lý thuyết đường con Elliptic được xác định trên trường số hữu hạn đã có địa
chỉ ứng dụng trong lĩnh vực mật mã đáng lưu ý.Lý do cơ bản của nó là đường cong
Elliptic tren trường hưu hạn đã cung cấp cho chúng ta một cơ sở xây dựng thuật toán
không thể dùng thuật toán vét cạn để thám mã của nhóm ABEL ngay cả khi nhóm đó
có cấp không lớn lắm.
Đường cong Elliptic là tập hợp các điểm có tọa độ (x,y) thỏa mãn phương trình
có dang sau đây:
Trên trường F biểu diễn bằng phương trình Weiretrass:
Xét đường cong trên trường số hữu hạn F
p

(p, số nguyên tố , p>3) với công thức biến
đổi như sau:
Khi đó pt Weiretrass có dạng:
X
3
+aX+b
Vậy trong trường F
p
(*) trở thành:
Y
2
=X
3
+aX+b
Định nghĩa:
Giả sử K là một trường có đặc số khác 2 và khác 3 và xét đa thức
X
3
+aX+b (với a,b thuộc K)
20
Lý thuyết mã hóa thông tin
NHÓM 6
Khi đó đường cong elliptic trên trường K: Y
2
=X
3
+aX+b (1) là tập hợptất cả các
điểm(x,y) với x,y € K sao cho (1) không có các nghiệm bội , tức là 4a
3
+27b

2
#0 mod
p cùng phần tử O- Điểm O này gọi là điểm vô hạn
Tức là đường cong Elliptic là tập hợp S:
S={ (x,y ) : y
2
= x
3
+ ax + b , x,y € K} ˅ { O }.
Với a,b € K cho trước sao cho 4a
3
+27b
2
# 0 theo mod p.
Nếu K là trường đặc số 2 thì ta định nghĩa:
Nếu k là trường đặc số 3 thì ta định nghĩa:
2.Giới thiệu một số hệ đường cong Elliptic trên trường số thực.
Mục tiêu: Tìm được trường hợp khác cho vấn đề Logarit rời rạc trong nhóm cyclic.
Câu hỏi: Phương trình x
2
+y
2
=r
2
trên trường số thực như thế nào?
Trả lời: Nó là một đường tròn.
Hình 3: x
2
+y
2

=r
2
trên trường số thực
21
Lý thuyết mã hóa thông tin
NHÓM 6
Câu hỏi: Phương trình a.x
2
+b.y
2
trên trường số thực như thế nào?
Trả lời: Nó là đường elip:
Hình 4: a.x
2
+b.y
2
=c trên trường số thực
Chú ý: Chỉ có một số điểm (x,y) thực hiện phương trình. Ví dụ điểm (x=r, y=1) thỏa
mãn các phương trình của đường tròn.
Định nghĩa: Đường cong elip trên Z
p
, p>3 là tập hợp tất cả các cặp (x,y) є Z
p
:y
2
≡x
3
+a.x+b mod p điều kiện a,b Є Z
p
và 4.a

3
27.b
2
≠0 mod p
Câu hỏi: Phương trình y
2
=x
3
+a.x+b trên trường số thực như thế nào?
22
Lý thuyết mã hóa thông tin
NHÓM 6
Hình 5: y
2
=x
3
+a.x+b trên trường số thực
3.Tính chất của đường cong Elliptic:
+ Nếu 2 điểm P1(x
1
, y
1
) và P
2
(x
2 ,
y
2
) với x
1

# x
2
nằm trên cùng một đường
cong Elliptic E, thì đường thẳng qua 2 điếm P
1
và P
2
sẽ cắt một điểm duy nhất P
3
(x
3,
y
3
)
có thể xác định thông thông qua P
1 và
P
2
nằm trên đường cong E.
+Tiếp tuyến của đường cong tại điểm bất kỳ P(x,y) trên đường cong E cuãng
cắt đường cong E tại một điểm duy nhất nằm trên đường E, điểm này cũng có thể xác
định được thông qua P.
Dựa vào những tính chất đó người ta đã nghiên cứu và phát hiện ra mọt khả
năng mới cho kỹ thuật mã hóa nói chung và chứng thực nói riêng, kỹ thuật mã hóa dự
trên đường cong Elliptic.
4.Đường cong Elliptic trên trường hữu hạn
Xét trường hữu hạn F
q
của q=p
r

phần tử trên trường hữu hạn K.Giả sử E là
đường cong elliptic được định nghĩa trên F
q.
Nếu đặc số của trường p=2 hoặc p=3 thì
E được cho bởi phương trình ở (2),(3).
Dễ dàng thấy răng một đường cong như vậy có thể có nhiều nhất là 2p+1 điểm trong
F
q
, nghia là điểm vô cùng với 2q cặp (x,y) trong đó x,y € F
q
thỏa mãn (1)(2) (3) (nếu
p=2 hoặc =3) , tức là với mõi q giá trị x có thể tồn tại nhiều nhất 2 giá trị y thỏa mãn
(1).Nhưng vì chỉ có một nửa các phần cảu F*
q
có cawnbaacj 2, người ta kỳ vọng (nếu
x
3
+ ax + b là các phần tử ngẫu nhiên cảu trường) chỉ có khoảng một nửa các số điểm
cảu F
q
(lấy (0)=0).
Ví dụ: Nếu q=p là một số nguyên tố thì (x)= (x / p) là ký hiệu lagedre .Do đó trong
tất cả mọi trường hợp số các nghiệm y € F
q
thỏa mãn phương trình y
2
=u là bằng 1+
(u). Vì vậy số các nghiệm ở phương trình (1) và điềm vô hạn là:
Ta hy vọng rằng (x
3

+ ax+b) bị chặn bởi 2√q đó chính là định lý Hasses được phát
triển như sau:
Định Lý: gọi N là số các điểm trên đường cong Elliptic dược định nghĩa trên F
q
.Khi
đó | N-(q+1)| <=2√q
23
Lý thuyết mã hóa thông tin
NHÓM 6
5.Các phép toán trên đường cong Elliptic:
5.1.Phép cộng:
Giả sử P=(x
1
,y
1
) và Q=(x
2
,y
2
) là 2 điểm của E.
Nếu x
1
=x
2
và y
1
=-y
2
thì ta định nghĩa P+Q=O
Ngược lại thì P+Q=(x

3,
y
3
)€ E trong đó:
Với
(**)
Vậy nếu P#Q tức là x
1
#x
2
thì:
Nếu P=Q thì
24
Lý thuyết mã hóa thông tin
NHÓM 6
Chú ý rằng các điểm (x
3
, y
3
),(x
3
,-y
3
) cũng nằm trên đường cong E và xét về mặt hình
học , thì các điểm (x
1
, y
1
), (x
2

, y
2
), (x
3
,- y
3
) cũng nằm trên một đường thẳng.
Ngoài rat a định nghĩa them :P+O=O+P
Tính chất: Dễ tháy rằng tập E với phép toán cộng đó tạo thành một nhóm ABEL:
+Tính đóng:Nếu P,Q € E thì P+Q € E.
+Tính kết hợp: Nếu P,Q ,R € thì P+(Q+R)=R+(P+Q).
+Tồn tại phần tử trung hòa O: Với mọi P€ E thì P+O=O+P=P(theo định nghĩa).
+Tồn tại phàn tử nghịch đảo:với mỗi P(x,y) € E thì luôn tồn tại phần tử -P(x,-
y) € để P+(-P) =O
25

×