Lý thuyết số trong mã hóa thông tin. tìm hiểu ứng dụng lý thuyết số trong mã hóa thông tin. Luận văn thạc sĩ đáng xem nhất Mã hóa thông tin với lý thuyết số, ứng dụng thực thực tế của lý thuyết số trong mã hóa thông tin. Mã hóa thông tin với lý thuyết số, ứng dụng thực thực tế của lý thuyết số trong mã hóa thông tin
Trang 1ĐẠI HỌC ĐÀ NẴNG
PHẠM THANH LÊ
LÝ THUYẾT SỐ TRONG MÃ HÓA THÔNG TIN
LUẬN VĂN THẠC SĨ KHOA HỌC
Đà Nẵng - Năm 2013
Trang 2PHẠM THANH LÊ
LÝ THUYẾT SỐ TRONG MÃ HÓA THÔNG TIN
Chuyên ngành: PHƯƠNG PHÁP TOÁN SƠ CẤP
Mã số : 60.46.40
LUẬN VĂN THẠC SĨ KHOA HỌC
Người hướng dẫn khoa học: PGS.TS NGUYỄN GIA ĐỊNH
ĐÀ NẴNG - NĂM 2013
Trang 3Tôi xin cam đoan
Những nội dung được trình bày trong luận văn này là do tôi thực hiện dưới sự hướng dẫn của thầy giáo PGS.TS Nguyễn Gia Định
Mọi tài liệu dùng trong luận văn đều được trích dẫn rõ ràng và trung thực tên tác giả, tên công trình, thời gian và địa điểm công bố
Nếu có sao chép không hợp lệ, vi phạm qui chế đào tạo tôi xin chịu hoàn toàn trách nhiệm
Tác giả
Phạm Thanh Lê
Trang 41 Lý do chọn đề tài 1
2 Mục tiêu nghiên cứu 3
3 Đối tượng và phạm vi nghiên cứu 3
4 Phương pháp nghiên cứu 3
5 Ý nghĩa khoa học và thực tiễn của đề tài 4
6 Cấu trúc luận văn 4
CHƯƠNG 1 KIẾN THỨC CƠ SỞ 5
1.1 PHÉP TÍNH ĐỒNG DƯ VÀ CÁC VẤN ĐỀ LIÊN QUAN 5
1.1.1 Số nguyên tố và định lý cơ bản của số học 5
1.1.2 Thuật toán Euclid và mở rộng 6
1.1.3 Phi hàm Euler 8
1.1.4 Phép tính đồng dư và phương trình đồng dư 9
1.1.5 Định lí Fermat và các mở rộng 10
1.1.6 Tính toán với đồng dư của lũy thừa bậc lớn 11
1.1.7 Định lý Phần dư Trung Hoa 12
1.1.8 Thặng dư bình phương và kí hiệu Legendre 13
1.2 LIÊN PHÂN SỐ 14
1.2.1 Khái niệm liên phân số 14
1.2.2 Giản phân 15
1.3 TRƯỜNG HỮU HẠN .19
1.3.1 Trường Fp 19
1.3.2 Cách xây dựng trường Fq từ trường Fp 19
1.4 ĐƯỜNG CONG ELLIPTIC 21
1.4.1 Khái niệm đường cong elliptic 21
1.4.2 Đường cong elliptic trên trường số thực 23
1.4.3 Đường cong elliptic trên trường hữu hạn 25
Trang 52.1.1 Một số thuật ngữ 27
2.1.2 Hệ mã đối xứng và hệ mã phi đối xứng 28
2.2 LịCH SỬ MẬT MÃ HỌC 29
2.3 NGUYÊN TẮC CHUNG VÀ MỘT SỐ HỆ MÃ ĐƠN GIẢN 30
2.3.1 Hệ mã Ceasar 30
2.3.2 Hệ mã khối 32
2.4 HỆ MÃ DỮ LIỆU TIÊU CHUẨN - DES 33
2.4.1 Phương án thu gọn của DES 34
2.4.2 Mô hình đầy đủ của DES 39
2.4.3 Các phương thức sử dụng DES 47
2.4.4 Độ an toàn của DES 48
2.5 THUẬT TOÁN MÃ HÓA DỮ LIỆU QUỐC TẾ IDEA 49
2.5.1 Nhận xét chung 49
2.5.2 Mã hóa và giải mã trong IDEA 50
2.5.3 Những đặc tính quan trọng 55
2.6 HỆ MÃ SAFER 57
2.6.1 Mô tả SAFER 57
2.6.2 Một số biến thể và nâng cấp 63
CHƯƠNG 3 CÁC HỆ MÃ MŨ VÀ MÃ PHI ĐỐI XỨNG 64
3.1 MỘT SỐ HỆ MÃ MŨ THÔNG DỤNG 64
3.1.1 Hệ mã mũ Pohlig và Hellman 64
3.1.2 Giao thức trao đổi chìa khóa của Diffie - Hellman 68
3.1.3 Hệ mã ElGamal 69
3.1.4 Nguyên tắc chung của mã hóa với khóa công khai 69
3.2 HỆ MÃ RSA 70
3.2.1 Nguyên tắc thực hiện 70
Trang 63.3.2 Hệ mã dùng đường cong elliptic trên trường hữu hạn 74
3.3.3 Mật mã khóa công khai dùng đường cong elliptic 76
3.3.4 Hệ mã tương tự mã mũ 77
3.3.5 Chọn đường cong elliptic 77
KẾT LUẬN 79 DANH MỤC TÀI LIỆU THAM KHẢO
QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (BẢN SAO)
Trang 7DES – Data Encryption Standard
E-Box – Expansion Box
IDEA – International Encryption Algorihm
IP – Initial Permutation
P-Box – Permutation Box
PC – Permuted Choice
SAFER – Secure And Fast Encryption Routine
S-Box – Substitution Box
Trang 9MỞ ĐẦU
1 Lý do chọn đề tài
Khoa học mật mã đã ra đời cách đây hàng nghìn năm và người đầu tiên
áp dụng mật mã một cách có hệ thống để đảm bảo bí mật thông tin quân sự là nhà quân sự thiên tài của La Mã cổ đại, Julius Caesar Mật mã là một ngành khoa học nghiên cứu các kỹ thuật toán học nhằm cung cấp các dịch vụ bảo vệ thông tin Đây là ngành khoa học quan trọng, có nhiều ứng dụng trong đời sống – xã hội Tuy nhiên, trong suốt nhiều thế kỷ, các kết quả của lĩnh vực này hầu như không được ứng dụng trong các lĩnh vực dân sự thông thường của đời sống – xã hội mà chủ yếu được sử dụng trong lĩnh vực quân sự, chính trị, ngoại giao Ngày nay, với sự phát triển ngày càng nhanh chóng của Internet và các ứng dụng giao dịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ thống và ứng dụng điện tử ngày càng được quan tâm và có ý nghĩa hết sức quan trọng Vì vậy, các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày càng phổ biến trong các lĩnh vực khác nhau trên thế giới, từ các lĩnh vực an ninh, quân sự, quốc phòng…, cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng… Do ý nghĩa quan trọng đó mà đề tài này thu hút được sự quan tâm của đông đảo các chuyên gia trên khắp thế giới và luôn được xem là trọng tâm nghiên cứu của mỗi quốc gia, nhất là ở những nước phát triển
Một điểm đặc biệt của công nghệ mã hóa hiện đại là không dựa vào khả năng giữ bí mật về phương pháp mã hóa, vì nó thường không chỉ do một người nắm giữ, mà nói chung thường có một nhóm người biết Ngày nay, người ta không tin vào khả năng giữ được bí mật tuyệt đối của cả một nhóm người, mà cho rằng bí mật chỉ có thể được giữ bởi một người có lợi ích được gắn liền với bí mật đó
Trang 10Mật mã hiện đại có những đòi hỏi mới mang tính nguyên tắc hơn so với mật mã thường dùng trước đây Những hệ thống mật mã cũ khi biết được khoá lập mã của họ ta dễ dàng tìm ra khoá giải mã Hiển nhiên muốn gửi một thông báo mật cho một đối tượng nào đó ta cần phải biết khóa lập mã của họ,
vì vậy những người cùng một hệ mã đều biết bí mật của nhau Nhiều người cùng sử dụng một hệ mã thì không còn là bí mật nữa Các hệ thống mật mã hiện đại đã khắc phục được những nhược điểm đó: công nghệ mã hóa mà phương pháp chung (thuật toán) là công khai, còn việc triển khai thì cho phép thay đổi được theo một tham số do từng người sử dụng tự ấn định (mỗi giá trị của tham số sẽ xác định một cách mã hóa riêng), việc lập mã và giải mã chỉ
có thể được thực hiện khi biết được tham số đó Tham số như vậy thường được gọi là “chìa khóa” và nó là thông tin duy nhất cần phải giữ bí mật Tóm lại, một hệ mã hiện đại cần phải dựa trên nguyên tắc: chốt tính bảo mật vào chìa khóa, mà không phải vào phương pháp (thuật toán) mã hóa Một hệ mã như vậy không chỉ đáp ứng được đòi hỏi của những chuyên gia về bảo mật thông tin, mà còn rất phù hợp cho các ứng dụng mang tính toàn dân nơi mà người sử dụng không hề có một chút nghiệp vụ về bảo mật và an toàn thông tin nói chung
Để có được những hệ mã đáp ứng các yêu cầu trên, người ta dựa vào các công cụ Toán học, đặc biệt là các phương pháp của Lý thuyết số Có thể nói, lý thuyết số là một trong những kiến thức toán học lâu đời nhất Từ trước tới nay, người ta thường coi lý thuyết số như một lĩnh vực đẹp, nhưng thuần túy lý thuyết của toán học Với sự phát triển của khoa học máy tính và công nghệ thông tin, lý thuyết số đã đóng góp những ứng dụng thực tế bất ngờ và quan trọng, đặc biệt trong lĩnh vực mã hóa thông tin Chính nhờ các kết quả nghiên cứu sâu sắc của toán học, người ta đã có những phương pháp mới
Trang 11trong công nghệ mã hóa, có khả năng chống lại sức bẻ khóa của các siêu máy tính cực mạnh
Xuất phát từ tính thời sự của mã hóa thông tin và nhu cầu muốn tìm hiểu về vai trò của lý thuyết số trong mã hóa thông tin, chúng tôi quyết định
chọn đề tài với tên gọi “Lý thuyết số trong mã hóa thông tin” để tiến hành
nghiên cứu Ngày nay, công nghệ mã hóa đã phát triển đến mức vượt ra ngoài khả năng thâu tóm của bất cứ một tài liệu nào, cho nên đề tài này cũng chỉ có thể trình bày những khía cạnh cơ bản nhất trong lĩnh vực mã hóa thông tin hiện nay, cùng với những kiến thức toán học làm cơ sở cho nó Chúng tôi hy vọng đây là một tài liệu tham khảo tốt cho những người bắt đầu tìm hiểu về
Mã hóa thông tin và hy vọng một số ví dụ minh hoạ đặc sắc góp phần làm
phong phú thêm các kết quả trong lĩnh vực này
2 Mục tiêu nghiên cứu
Nghiên cứu mã hóa thông tin qua các phương pháp mã hóa dựa trên công cụ lý thuyết số
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
Mã hóa thông tin và vai trò của lý thuyết số trong các phương pháp mã hóa
3.2 Phạm vi nghiên cứu
Mật mã học và các ứng dụng
4 Phương pháp nghiên cứu
Đề tài này đã sử dụng các phương pháp nghiên cứu sau:
- Phương pháp nghiên cứu tư liệu gồm: Các tài liệu tham khảo, các bài
- Phương pháp tiếp cận lịch sử: Sưu tầm, phân tích và tổng hợp tư liệu
- Phương pháp tiếp cận hệ thống
Trang 125 Ý nghĩa khoa học và thực tiễn của đề tài
- Đề tài đã tổng quan các kết quả của các tác giả đã nghiên cứu liên quan đến mã hóa thông tin và vai trò của lý thuyết số trong các phương pháp
mã hóa nhằm xây dựng một tài liệu tham khảo cho những ai muốn nghiên cứu
về mã hóa thông tin
- Đề tài đã chứng minh chi tiết và làm rõ một số mệnh đề, cũng như đưa ra một số ví dụ minh họa đặc sắc nhằm làm cho người đọc dễ dàng tiếp cận vấn đề được đề cập
6 Cấu trúc luận văn
Mở đầu
Chương 1: Kiến thức cơ sở
Trong chương này nêu đầy đủ kiến thức cơ sở về phép tính đồng dư, liên phân số, trường hữu hạn và đường cong elliptic
Chương 2:Các khái niệm cơ bản của mã hóa và các hệ mã đối xứng Trong chương này trình bày một số thuật ngữ, khái niệm của mã hóa và các hệ mã đối xứng Giới thiệu về hệ mã Caesar, mã khối, hệ mã DES, thuật toán mã hóa dữ liệu quốc tế IDEA, hệ mã SAFER
Chương 3: Các hệ mã mũ và mã phi đối xứng
Trong chương này trình bày một số hệ mã mũ thông dụng, hệ mã RSA, đường cong elliptic và hệ mã phi đối xứng
Kết luận
Trang 13CHƯƠNG 1KIẾN THỨC CƠ SỞ
Trong chương này chúng tôi trình bày một số kiến thức chuẩn bị Để tiện theo dõi, chúng tôi trình bày trong mục 1.1 là một số kiến thức về phép tính đồng
dư và các vấn đề liên quan, trong mục 1.2 là một số kiến thức về liên phân số, trong mục 1.3 là một số kiến thức về trường hữu hạn, trong mục 1.4 là một số kiến thức về đường cong elliptic
1.1 PHÉP TÍNH ĐỒNG DƯ VÀ CÁC VẤN ĐỀ LIÊN QUAN
1.1.1 Số nguyên tố và định lý cơ bản của Số học
Định nghĩa 1.1 Số nguyên tố là số tự nhiên lớn hơn 1, không chia hết
cho số tự nhiên nào khác ngoài 1 và chính nó Số tự nhiên lớn hơn 1 không phải là số nguyên tố được gọi là hợp số
Định lý 1.1 Mọi hợp số n đều có ước nguyên tố nhỏ hơn n
Chứng minh Vì n là một hợp số nên ta có thể viết n = a.b, trong đó a và
b là các số nguyên với 1 a Khi đó, b n 2
a ab nên a n n Ngoài
ra, ước nguyên tố của a cũng đồng thời là ước nguyên tố của n
Từ định lý này, ta có sàng Eratosthenes tìm các số nguyên tố nhỏ hơn
hoặc bằng số n cho trước
Định lý 1.2 (Định lý cơ bản của số học) Mọi số nguyên lớn hơn 1 đều
phân tích được một cách duy nhất dưới dạng tích các lũy thừa của các số nguyên tố khác nhau, trong đó các thừa số được viết theo thứ tự không giảm
Chứng minh Giả sử tồn tại những số không viết được thành tích các số
nguyên tố Gọi n là số bé nhất trong các số đó Như vậy, n phải là hợp số,
Trang 14Chúng ta còn phải chứng minh phân tích là duy nhất Giả sử ta có:
vế Như vậy, vế trái chia hết cho
q Ta gọi phân tích số nguyên ra thừa số nguyên tố là phân tích số nguyên
Như vậy, với mọi số nguyên n > 1, ta luôn tìm được các số nguyên tố
khác nhau và các số tự nhiên 1, , sao cho r 1
n p p Dễ dàng thấy
rằng ( 1 1) ( r 1) là số lượng các ước số dương của n
Hệ quả 1.1 Nếu p là một số nguyên tố và p | ab thì ít nhất một trong 2
số a, b phải chia hết cho p
Ước chung lớn nhất của 2 số tự nhiên a, b là số lớn nhất trong tập các ước chung của 2 số đó, được kí hiệu là UCLN(a, b) hay đơn giản là (a, b) Như vậy, nếu d | a và d | b thì d | UCLN(a, b)
Khi 2 số tự nhiên có ước chung lớn nhất là 1 thì chúng được gọi là nguyên tố cùng nhau
1.1.2 Thuật toán Euclid và mở rộng
a Thuật toán Euclid
El (Kết thúc?) Nếu b = 0, in ra a và kết thúc thuật toán
E2 (Chia Euclid) Đặt r ← a mod b, a ← b, b ← r, và quay về bước El
Ví dụ 1.1 Ta tính UCLN(345,1127) bằng thuật toán Euclid
Ta có: d = (345,1127) = (92,345) = (69,92) = (23,69) =(0,23) = 23 Như vậy, UCLN(345,1127) = 23
Trang 15b Thuật toán Euclid mở rộng
Cho hai số nguyên không âm u, v Tìm (u1,u2,u3) sao cho
(u, v) = u3 = uu1 + vu2
Trong tính toán, ta thêm vào các ẩn phụ (v1,v2,v3), (t1,t2,t3) và luôn có trong mọi bước các đẳng thức sau đây:
ut1 + vt2 = t3, uv1 + vv2 = v3, uu1 + vu2 = u 3
Edl (Xuất phát) Đặt (u1,u2,u3) ← (1, 0, u), (v1,v2,v3) ← (0, 1, v)
Ed2 (Kiểm tra v3 = 0 ?) Nếu v3 = 0, thuật toán kết thúc
Ed3 (Chia, trừ) Đặt q ← 3
3
u v
, và sau đó đặt
(t1,t2,t3) ← (u1,u2,u3) - q(v1,v2,v3),
(u1,u2,u3) ← (v1,v2,v3), (v1,v2,v3) ← (t1,t2,t3)
và quay về bước Ed2
Ví dụ 1.2 Cho a = 74, b = 28 Dùng thuật toán Euclid ta có:
Bằng cách theo dõi thương tìm được trong suốt thuật toán, ta có thể xác
định các số nguyên m và n với UCLN(a,b) = m.a + n.b Thuật toán tìm m
và n như trên được gọi là thuật toán Euclid mở rộng.
Trang 161.1.3 Phi - hàm Euler
Định nghĩa 1.2 Hàm Euler φ(n) là hàm xác định với mọi số nguyên
dương n, được định nghĩa là số các số nguyên dương không vượt quá n và nguyên tố cùng nhau với n
Ví dụ 1.3
n 1 2 3 4 5 6 7 8 9 10 11 12
Hệ quả 1.2 Số p là nguyên tố khi và chỉ khi φ(p) = p – 1
Tổng quát hơn, khi p là số nguyên tố và r là một số nguyên dương bất kì
thì: φ(p r ) = p r-1 (p-1) = p r (1 – 1/p)
Định lý 1.3 Hàm Euler là một hàm nhân tính, nghĩa là với m, n là các số
nguyên dương nguyên tố cùng nhau, ta có: φ(m.n) = φ(m) φ(n)
Bây giờ giả sử r là một số nguyên không vượt quá m Giả sử
( , )m r d Khi đó, không số nào trong dòng thứ r nguyên tố cùng nhau 1
với m.n, và mỗi phần tử của dòng đó đều có dạng km + r, 1k n , 1
d kmr vì d m , || d r
Vậy để tìm các số trong bảng mà nguyên tố cùng nhau với m.n, ta chỉ cần xem dòng thứ r với (m,r) = 1 Ta xét một dòng như vậy, nó chứa các số
Trang 17, , ( 1)
r mr n m Vì (r,m) = 1 nên mỗi số nguyên trong dòng đều r
nguyên tố cùng nhau với n
Vậy, n số nguyên trong dòng lập thành hệ thặng dư đầy đủ modulo m
Do các số đó cũng nguyên tố cùng nhau với m nên chúng nguyên tố cùng
nhau với m.n, nên ta suy ra φ(m.n) = φ(m) φ(n)
1.1.4 Phép tính đồng dư và phương trình đồng dư
Định nghĩa 1.3 Giả sử m là một số nguyên dương Ta nói, hai số nguyên
a và b là đồng dư với nhau modulo m nếu m chia hết hiệu a - b
Để chỉ a đồng dư với b modulo m, ta ký hiệu: ab (mod m) (gọi là
đồng dư thức) Điều này có nghĩa là số dư tìm được trong phép chia a và b cho m là bằng nhau Dễ dàng có được các tính chất sau
4 Nếu ab (mod m), cd (mod m)
thì a ± cb ± d (mod m),a.cb.d (mod m)
Từ đây suy ra quan hệ đồng dư modulo m là một quan hệ tương đương trên Lớp tương đương của x∈ là xxkm k|
x y xy
Trang 18U r r r thì r r1, , ,2 r(m) được gọi là thặng dư thu gọn
modulo m
Phương trình đồng dư tuyến tính axb (mod m) thỏa mãn:
Khi UCLN(a,m) = 1 thì có ngay nghiệm xa-1b (mod m)
Khi UCLN(a,m) = g thì có hai khả năng xảy ra:
1 Nếu g chia hết b thì phương trình đã cho tương đương với phương trình (a/g)x (b/g)(mod m/g) và (a/g, m/g) = 1
2 Nếu g không chia hết b thì phương trình vô nghiệm
1.1.5 Định lý Fermat và các mở rộng
Định lý 1.4 (Định lý Fermat nhỏ) Nếu p là một số nguyên tố còn a là
một số nguyên thì a pa (mod p) Nếu p không chia hết a thì a p- 11(mod p)
Chứng minh Với a không chia hết cho p hay (a, p) = 1, ta có
p
a U (nhóm các phần tử khả nghịch trong ) Do đó, p _
{1, 2, 1} { , 2 , ( 1) }
p
U p a a p a , nên
_ .2 ( 1) 1 2 1
a a p a p hay
Định lý 1.5 (Định lý mở rộng (Euler)) Nếu m là số nguyên dương và a
là số nguyên tố cùng nhau với m thì ( )
( ){ , , , m}
U a r a r a r Vì vậy
( ) m
1 2
ar ar ar =
( ) m
1 2
r r r hay ( )
Trang 19Trong trường hợp riêng, khi m là số nguyên tố thì (m) = m - 1 và ta có
định lý Fermat nhỏ
Hệ quả 1.4 Nếu (c, m) = 1 và a b (mod φ(m)) với a, b là các số tự nhiên, thì c a c b (mod m)
Hệ quả 1.5 Nếu e, d là các số nguyên thỏa mãn e.d 1 (mod (m))
thì với mọi số c nguyên tố cùng nhau với m, ta có (c e)d c (mod m)
Hệ quả này đóng vai trò then chốt trong việc thiết lập các hệ mã mũ và
hệ mã RSA ở Chương 3
1.1.6 Tính toán với đồng dư của luỹ thừa bậc lớn
Ngoài việc sử dụng hệ quả của Định lý Euler để tính toán người ta còn thường hay sử dụng nhất là phương pháp bình phương liên tiếp sau đây Để hiểu rõ phương pháp này chỉ cần xem ví dụ sau:
Trang 201.1.7 Định lý Phần dư Trung Hoa
Định lý 1.6 Giả sử m1, m2,…, m r là các số nguyên dương nguyên tố cùng nhau từng đôi một Khi đó, hệ phương trình đồng dư:
ta có x chính là nghiệm của hệ đang xét
Giả sử x0, x1 là hai nghiệm của hệ Khi đó với mỗi k,
Nhận xét Định lý Phần dư Trung Hoa cho phép tính toán đồng dư theo
modulo của một số lớn (tích của nhiều số nguyên tố cùng nhau) thông qua tính toán đồng dư theo modulo các số nhỏ (từng thừa số) Điều này sẽ hỗ trợ trong công việc thám mã sau này
Ví dụ 1.6 Tìm nghiệm của hệ sau modulo 57057:
2(mod 3)5(mod 7)4(mod11)9(mod13)6(mod19)
x x x x x
Trang 211 _
1.1.8 Thặng dư bình phương và ký hiệu Legendre
Định nghĩa 1.4 Cho số nguyên tố p Số nguyên a được gọi là thặng dư
bình phương (mod p) nếu như a và p nguyên tố cùng nhau và tồn tại số nguyên x thỏa mãn phương trình x 2 ≡ a (mod p)
Nguyên lý căn bậc 2 Một trong hai "nghiệm" của thặng dư bình phương
cũng là một thặng dư bình phương
Ví dụ 1.7 Lấy p = 11 ta có a = 4 là một thặng dư bình phương Nó có
hai nghiệm là 2 và 9, trong đó 9 là một thặng dư bình phương (dễ dàng kiểm tra 32 9 (mod 11) hoặc 82 9 (mod 11))
Định nghĩa 1.5 (Ký hiệu Legendre) Với số nguyên tố p > 2 và số
nguyên bất kỳ a, số nguyên sau gọi là ký hiệu Legendre:
L(a,p) :=
a p
=
1 2
p a
(mod p)
và L(a,p) :=
a p
=
0 1-1
Ta có thể mở rộng khái niệm kí hiệu trên cho trường hợp p không phải là nguyên tố, nhưng chỉ xét những số a trong hệ thặng dư thu gọn của p
nếu a chia hết cho p nếu a là một thặng dư bình phương (mod p)
các trường hợp còn lại
Trang 22Định nghĩa 1.6 (Ký hiệu Jacobi) Với số nguyên n = p1.p2 p k , trong
đó p i (i = 1, k ) là các số nguyên tố còn a nằm trong hệ thặng dư thu gọn của
n, số nguyên sau gọi là ký hiệu Jacobi:
J(a,n) = L(a,p1)L(a,p2) L(a,p k)
Như vậy khi n là số nguyên tố thì J(a,n) = L(a,n)
1.2 LIÊN PHÂN SỐ
1.2.1 Khái niệm liên phân số
Định nghĩa 1.7 Cho một số hữu tỉ a
o
o
n n
r a
Cách viết như trên được gọi là biểu diễn số hữu tỉ a
b dưới dạng liên phân
số
Để đơn giản, ta dùng cách viết a
b = [a0;a1, ,an] Liên phân số
a a0; , ,1 a nđược gọi là liên phân số hữu hạn (cấp n)
Như vậy, dùng thuật toán Euclid có thể biểu diễn mọi số hữu tỉ dưới dạng liên phân số hữu hạn Ngược lại, rõ ràng mỗi liên phân số hữu hạn là một số hữu tỉ
Trang 23Giả sử x là một số thực tuỳ ý Đặt ao = [x], phần nguyên của x, và
x x a là phần lẻ của x Tiếp theo đó ta đặt a1 = 1
o x
x - a i Nếu ở bước thứ i nào
đó, x i = 0 thì quá trình kết thúc (điều này xảy ra khi và chỉ khi x là số hữu tỷ )
Ngược lại, ta có x biểu diễn dưới dạng phân số liên tục vô hạn:
1
111
Các liên phân số định nghĩa như trên với các số a i nguyên gọi là các liên
phân số đơn giản Khi không đòi hỏi a i là các số nguyên, mà có thể là số thực tuỳ ý, ta dùng cách viết
Ta gọi giản phân thứ k (hay cấp k) của liên phân số δ là phân số k
k k
p q
Trang 24111
k k
k k
a ;a a a a
a
a a
Trang 26Hệ quả 1.6 Các giản phân là các phân số tối giản
Mệnh đề 1.4 Tập hợp các giản phân cấp chẵn hợp thành một dãy hữu tỉ
tăng cùng chỉ số, còn tập hợp các giản phân cấp lẻ hợp thành một dãy hữu tỉ giảm khi chỉ số tăng
Đẳng thức trên cho ta điều cần chứng minh
Mệnh đề 1.5 Mỗi giản phân cấp chẵn đều nhỏ hơn mọi giản phân cấp lẻ
Mệnh đề 1.6 Tập hợp các giản phân của một liên phân số vô hạn hợp
thành một dãy Cauchy hữu tỉ
Chứng minh Theo cách xác định q s , ta có q s là một số nguyên dương và
q s > q s-1 , ∀s = 2, 3, … Do đó qs tăng vô hạn cùng với s Từ các tính chất của
Trang 27Định nghĩa 1.9 Giá trị của liên phân số hữu hạn a a0; , ,1 a n là giá trị của giản phân cuối cùng của nó Giá trị của liên phân số vô hạn n
a a0; , ,1 a k,
là giới hạn của dãy các giản phân ( )s s của nó
Hệ quả 1.7 Giá trị của một liên phân số lớn hơn mọi giản phân cấp chẵn
và nhỏ hơn mọi giản phân cấp lẻ của nó
Liên phân số được đề cập đến trong công nghệ mã hóa dòng thông tin và trong việc phân tích số nguyên tố liên quan đến công nghệ thám mã
Do F là một nhóm cyclic, phần tử g sinh ra p* F còn gọi là một căn p*
nguyên thủy Người ta chứng minh được rằng nếu g là phần tử sinh của F p*
còn b là một số nguyên tố cùng nhau với p – 1 thì g b cũng là phần tử sinh của nhóm F Do đó số các phần tử sinh của nhóm p* F bằng p* φ(p–1)
1.3.2 Cách xây dựng trường F q từ trường F p
Giả sử F q là một trường hữu hạn gồm q phần tử, đặc số p Vì F q chứa
phần tử 1 nên nó sẽ chứa trường F p như một trường con Do F q là trường hữu
hạn nên nó là mở rộng hữu hạn của F p , nghĩa là một không gian vectơ r chiều trên F p Từ đó suy ra rằng F q gồm p r phần tử, tức là q = p r
Định lí 1.7 Giả sử F q là trường hữu hạn với q = p r phần tử Khi đó, mọi
phần tử của F q đều thỏa mãn phương trình X q – X = 0
F q chính là tập hợp các nghiệm của phương trình đó Ngược lại, trường
mở rộng của F p bởi đa thức X q – X là trường hữu hạn có q phần tử
Trang 28Định lí 1.8 Mọi trường hữu hạn đều có phần tử sinh Nếu g là một phần
tử sinh của F thì g q* s là phần tử sinh của F khi và chỉ khi (s, q–1) = 1 Như q*
vậy, tồn tại tất cả φ(q–1) phần tử sinh của *
q
F
Bây giờ ta sẽ mô tả cụ thể cách xây dựng trường F q từ trường F p Để dễ hình dung, trước tiên xây dựng trường số phức ℂ như là một trường mở rộng của trường số thực ℝ bởi đa thức P(x) = x2 + 1
Có thể xem mỗi số phức như một cặp số thực (a, b), do đó có thể đồng nhất mỗi số phức với một đa thức ax + b hệ số thực Với cách tương ứng như
vậy, khi nhân hai số phức (biểu diễn bởi hai đa thức), ta chỉ việc nhân theo
quy tắc nhân các đa thức và thay x2 bởi (-1), cũng tức là thay x2 + 1 bởi 0 Nói cách khác, tập hợp các số phức chính là tập hợp các đa thức với hệ số thực, trong đó hai đa thức được đồng nhất khi và chỉ khi hiệu của chúng là bội (chia
hết cho) đa thức P(x) = x2 + 1 Ta viết ℂ = ℝ[x]/P(x)
Trường F q , q = p r , được xây dựng từ trường F p theo cách hoàn toàn
tương tự Ta xuất phát từ một đa thức bất khả quy P(x) bậc r với hệ số trong
F p , trong đó hệ số của x r bằng 1 Khi đó ta có F q = F p [x]/P(x) Như vậy, các phần tử của F q là các đa thức với hệ số trong F p , bậc nhỏ hơn r
Ta có thể xuất phát từ đa thức bất khả quy tùy ý Các trường nhận được
có số phần tử như nhau và đẳng cấu với nhau
Ví dụ 1.9 Xây dựng trường F16 từ trường F2 bởi đa thức
Trang 29Các phần tử của F16 là các đa thức bậc nhỏ hơn hoặc bằng 3, với hệ số 0 hoặc 1 Ta thống kê các đa thức (theo bậc):
1.4 ĐƯỜNG CONG ELLIPTIC
1.4.1 Khái niệm đường cong elliptic
Định nghĩa 1.10 Đường cong elliptic trên trường K là tập hợp các điểm
(x, y) thỏa mãn phương trình:
y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 , với a1, a2, a3, a4, a6 ∈ K (1.1) với một điểm O gọi là điểm vô cùng Hơn nữa phương trình (1.1) phải thỏa
mãn điều kiện không kì dị, tức là nếu viết nó dưới dạng F(x, y) = 0 thì tại mọi điểm (x, y) thỏa mãn phương trình có ít nhất một trong các đạo hàm riêng
Điểm tại vô cùng nói trong định nghĩa là điểm vô cùng trong đường cong
xạ ảnh tương ứng Ta xét không gian xạ ảnh P2, tức là không gian mà các
điểm là các lớp tương đương của các bộ ba (x, y, z), trong đó x, y, z không đồng thời bằng 0, và bộ ba (x, y, z) tương đương với bộ ba ( x y, , z), 0
Như vậy nếu z thì lớp tương đương của (x, y, z) chứa bộ ba 0 x y, ,1
z z
Ta
Trang 30có thể đồng nhất mặt phẳng xạ ảnh P2 với mặt phẳng thông thường cùng với
các “điểm tại vô hạn” ứng với z = 0
Một đường cong trong mặt phẳng thông thường có thể tương ứng với đường cong trong mặt phẳng xạ ảnh bằng cách thêm vào các điểm tại vô cùng Để làm việc đó, trong phương trình xác định đường cong, ta chỉ cần
- Phần tử 0 là điểm tại vô cùng, (0,1,0);
- Điểm với tọa độ (x1, y1) có nghịch đảo là điểm với tọa độ
y a x a
nếu P1P2
Chứng minh Bằng tính toán trực tiếp dựa vào phương trình xác định
đường cong, dễ kiểm tra định nghĩa phép cộng trên đây thỏa mãn các tiên đề nhóm Abel
Trang 31Hình 1.1 Một ví dụ về đường cong elliptic
1.4.2 Đường cong elliptic trên trường số thực
Đường cong elliptic E trên trường số thực là tập hợp các điểm (x, y) thỏa mãn công thức: y2 = x3 + a4 x + a 6 , với a4, a6 ∈ (1.3) cùng với một điểm O vô cùng
Cặp giá trị (x, y) đại diện cho một điểm trên đường cong elliptic Đường cong elliptic E trên ký hiệu là E( ) Đường cong elliptic trên cho ta một nhóm Abel (E( ), +) (theo Định lý 1.9)
Phép cộng trong Định lý 1.9 được minh họa:
Hình 1.2 Điểm ở vô cùng
Trang 32Phép cộng trên E( ) có thể được định nghĩa theo phương diện hình học Giả sử có hai điểm phân biệt P và Q, P, Q ∈ E( ) Phép cộng trên nhóm đường cong elliptic là P + Q = R, R ∈ E( )
Hình 1.3 Phép cộng trên đường cong elliptic
Để tìm điểm R, ta nối P và Q bằng đường thẳng L Đường thẳng L sẽ cắt
E tại ba điểm P, Q và –R(x, y) Điểm R(x, –y) sẽ có tung độ là giá trị đối của y
Phép nhân đôi được minh họa:
Hình 1.4 Phép nhân đôi trên đường cong elliptic
Trang 33Xét phép nhân đôi: nếu cộng hai điểm P, Q ∈ E( ) với P = Q thì đường thẳng L sẽ là tiếp tuyến của đường cong elliptic tại điểm P Trường hợp này điểm –R sẽ là giao điểm còn lại của L với E Lúc đó R = 2P
1.4.3 Đường cong elliptic trên trường hữu hạn
Đường cong elliptic được xây dựng trên các trường hữu hạn Có hai
trường hữu hạn thường được sử dụng: trường hữu hạn F q với q là số nguyên
tố hoặc q là 2 m (m là số nguyên)
Tùy thuộc vào trường hữu hạn F q , với mỗi bậc của q, tồn tại nhiều đường cong elliptic Do đó, với một trường hữu hạn cố định có q phần tử và q
lớn, có nhiều sự lựa chọn nhóm đường cong elliptic
a Đường cong elliptic trên trường F p (p là số nguyên tố)
Cho p là số nguyên tố (p > 3) Cho a, b F p sao cho 4a3 + 27b2 ≠ 0
trong trường F p Một đường cong elliptic E(F p ) trên F p (được định nghĩa bởi
các tham số a và b) là một tập hợp các cặp giá trị (x, y) (x, y ∈ F p) thỏa công
cùng với một điểm O – gọi là điểm tại vô cùng Số lượng điểm của E(F p) là
#E(F p) thỏa định lý Hasse:
Trang 34Bậc của một điểm A trên E(F p ) là một số nguyên dương r sao cho:
r
A A A
b Đường cong elliptic trên trường F 2m
Một đường cong elliptic E( F ) trên 2m F được định nghĩa bởi các tham số 2m
a, b ∈ F (với b 2m ≠ 0) là tập các điểm (x, y) với x ∈ F , y 2m ∈ F thỏa công 2m
thức: y2 + xy = x3 + ax2 + b (1.5)
cùng với điểm O là điểm tại vô cùng Số lượng các điểm thuộc E( F ) kí hiệu 2m
#E( F ) thoả định lý Hasse: 2m
q + 1 − 2 p ≤ #E( F ) ≤ q + 1 + 22m p
trong đó q = 2 m Ngoài ra, #E( F ) là số chẵn 2m
Tập hợp các điểm thuộc E( F ) tạo thành một nhóm thỏa các tính chất 2m
sau:
o O + O = O
o (x, y) + O = (x, y), ∀(x, y) ∈ E( F ) 2m
o (x, y) + (x, x + y) = O, ∀(x, y) ∈ E( F ) Khi đó, (x, x + y) là điểm 2m
đối của (x, y) trên E( F ) 2m
Một trong những ứng dụng mới nhất của đường cong elliptic trên trường hữu hạn, xuất hiện trong những năm gần đây là các hệ mật mã khóa công khai elliptic
Trang 35CHƯƠNG 2 CÁC KHÁI NIỆM CƠ BẢN CỦA MÃ HÓA
VÀ CÁC HỆ MÃ ĐỐI XỨNG
2.1 MỘT SỐ THUẬT NGỮ VÀ KHÁI NIỆM
2.1.1 Một số thuật ngữ
- Văn bản gốc (Plaintext, kí hiệu là P): chứa các xâu kí tự gốc, thông tin
trong văn bản gốc là thông tin cần mã hoá để giữ bí mật
- Văn bản mã (Ciphertext, kí hiệu là C): chứa các kí tự sau khi đã được
mã hóa, mà nội dung được giữ bí mật
- Sự lập mã (Encryption): là quá trình che dấu thông tin bằng phương
pháp nào đó để làm ẩn nội dung bên trong, còn gọi là mã hóa
- Sự giải mã (Decryption): quá trình khôi phục văn bản gốc từ văn bản
mã
- Chìa khoá mã (Cipher key): bí quyết lập mã và giải mã
- Hệ mã (Cryptosystem): phương pháp mã hóa văn bản
- Mật mã học (Crytography): là nghệ thuật tạo ra và sử dụng các hệ mã
- Phân tích mã (Cryptanalysis) hay thám mã: là khoa học nghiên cứu
cách phá các hệ mã nhằm phục hồi văn bản gốc ban đầu từ văn bản mã
Quá trình mã hoá và giải mã được thể hiện trong sơ đồ sau:
Trang 36P (Plaintext) là tập hợp hữu hạn các văn bản gốc có thể
C (Ciphertext) là tập hợp hữu hạn các văn bản mã có thể
K (Key) là tập hợp các chìa khoá có thể
E (Encrytion) là tập hợp các qui tắc mã hoá có thể
D (Decrytion) là tập hợp các qui tắc giải mã có thể
Chúng ta đã biết một thông báo thường được tổ chức dưới dạng văn bản gốc Người gửi sẽ làm nhiệm vụ mã hóa văn bản gốc, kết quả thu được gọi là văn bản mã Văn bản mã này được gửi đến người nhận Sau khi nhận được văn bản mã, người nhận giải mã nó để tìm hiểu nội dung
Dễ dàng thấy được công việc trên khi sử dụng định nghĩa hệ mật mã:
E K (P) = C và D K (C) = P
- Hệ mã bí mật (Secret Key Cryptosystem – SKC) hay hệ mã đối xứng: là
hệ mã mà trong đó việc lập mã và giải mã cùng sử dụng chung một chìa khóa
mã (bí mật)
- Hệ mã công khai (Public Key Cryposystem – PKC) hay hệ mã phi đối
xứng: là hệ mã mà trong đó việc lập mã và giải mã sử dụng 2 chìa khóa mã
riêng biệt, từ chìa này không thể tìm ra chìa kia một cách dễ dàng; chìa dùng
để lập mã thường được thông báo công khai, còn chìa dành cho việc giải mã phải luôn giữ bí mật, thường được gọi là chìa khóa riêng
2.1.2 Hệ mã đối xứng và hệ mã phi đối xứng
Hệ mã đối xứng hay còn gọi hệ mã hoá cổ điển hay hệ mã bí mật là hệ
mã mà tại đó khoá mã hoá có thể tính toán ra được từ khoá giải mã Trong rất nhiều trường hợp, khoá mã hoá và khoá giải mã là giống nhau Hệ mã này yêu cầu người gửi và người nhận phải thoả thuận một khoá trước khi thông báo được gửi đi, và khoá này phải được cất giữ bí mật Độ an toàn của hệ mã này vẫn phụ thuộc vào khoá, nếu để lộ ra khoá này nghĩa là bất kỳ người nào cũng
có thể mã hoá và giải mã thông báo trong hệ thống mã hoá
Trang 37Vấn đề quản lý và phân phối khoá là khó khăn và phức tạp khi sử dụng
hệ mã hoá cổ điển, đặc biệt là khi số lượng người sử dụng rất lớn Đồng thời, việc thay đổi khoá là rất khó và dễ bị lộ Khuynh hướng cung cấp khoá dài mà
nó phải được thay đổi thường xuyên cho mọi người trong khi vẫn duy trì cả tính an toàn lẫn hiệu quả chi phí sẽ cản trở rất nhiều tới việc phát triển hệ mật
mã cổ điển Nếu như vấn đề khó khăn đặt ra đối với các phương pháp mã hóa
cổ điển chính là bài toán trao đổi mã khóa thì ngược lại, các phương pháp mã hóa khóa công khai (hay còn gọi là mã hóa hiện đại hay mã hóa phi đối xứng) giúp cho việc trao đổi mã khóa trở nên dễ dàng hơn
Hệ mã công khai khác biệt so với hệ mã bí mật Chúng được thiết kế sao cho khoá sử dụng vào việc mã hoá là khác so với khoá giải mã Hơn nữa khoá giải mã không thể tính toán được từ khoá mã hoá Chúng được gọi với tên hệ thống mã khoá công khai bởi vì khoá để mã hoá có thể công khai, một người bất kỳ có thể sử dụng khoá công khai để mã hoá thông báo, nhưng chỉ một vài người có đúng khoá giải mã mới có khả năng giải mã Trong nhiều hệ thống, khoá mã hoá gọi là khoá công khai (public key), khoá giải mã thường được gọi là khoá riêng (private key) Nội dung của khóa công khai không cần phải giữ bí mật như đối với khóa bí mật trong các phương pháp mã hóa cổ điển Đặc trưng nổi bật của hệ mã hoá công khai là cả khoá công khai và bản tin mã hoá đều có thể gửi đi trên một kênh thông tin không an toàn
2.2 LỊCH SỬ MẬT MÃ HỌC
Mật mã học có lịch sử lâu dài và đầy màu sắc Nói chung, những dạng
sớm nhất của cách viết bí mật (ngày nay gọi chung là mật mã hóa cổ điển) chỉ cần có bút và giấy Hai phạm trù chính của mật mã cổ điển là mật mã hoán vị, trong đó người ta sắp xếp lại trật tự các chữ cái của thông điệp, và mật mã
thay thế, trong đó người ta thay thế có hệ thống các chữ cái hay các nhóm chữ
cái bằng các chữ cái hay các nhóm chữ cái khác Văn bản được mật mã hóa
Trang 38bằng mật mã cổ điển có xu hướng lộ ra các thông tin thống kê nhất định về văn bản thường Bằng cách sử dụng các thông tin này, mật mã cổ điển rất dễ
bị dò ra Mật mã cổ điển vẫn còn được phổ biến tới ngày nay, chủ yếu thông qua việc giải các ô đố chữ
Các thiết bị và các kỹ thuật khác nhau đã được sử dụng để mật mã hóa Một trong những thiết bị sớm nhất có lẽ là gậy mật mã của người Hy Lạp Trong nửa đầu thế kỷ 20, một số thiết bị cơ khí đã được phát minh để thực hiện mật mã hóa, nổi tiếng nhất là máy Enigma được người Đức sử dụng trong Đại chiến thế giới 2 Mật mã thực hiện bằng các máy móc này đã tăng
độ phức tạp lên đáng kể đối với công việc phân tích mã
Các nghiên cứu rộng rãi có tính học thuật về mật mã hóa hiện đại là tương đối gần đây, nó chỉ được bắt đầu trong cộng đồng mở kể từ những năm thập niên 1970 với các chi tiết kỹ thuật của DES (viết tắt trong tiếng Anh
của Data Encryption Standard tức Tiêu chuẩn Mật mã hóa Dữ liệu) và sự
phát minh ra RSA Kể từ đó, mật mã hóa đã trở thành công cụ được sử dụng rộng rãi trong liên lạc và bảo mật máy tính
2.3 NGUYÊN TẮC CHUNG VÀ MỘT SỐ HỆ MÃ ĐƠN GIẢN
Những hệ mã hiện đại có thể xem là sự cải tiến từ hệ mã Caesar Đây là
hệ mã được biết sớm nhất, được sáng tạo bởi Julius Caesar Vì thế, phần này
sẽ bắt đầu bằng việc trình bày hệ mã Caesar
2.3.1 Hệ mã Ceasar
a Nguyên lý thực hiện
Ceasar đã chuyển thông báo mật bằng cách sau đây Trước tiên lập phép tương ứng mỗi chữ cái với một số Nhờ bảng tương ứng đó ta có thể chuyển một văn bản thành dạng chữ số Sau đó ta cộng thêm 3 vào mỗi chữ số nhận được, lại nhờ bảng tương ứng giữa chữ và số, ta biến bảng chữ số mới này về
Trang 39dạng chữ viết Như vậy ta nhận được một văn bản mật cần chuyển Đây là
quá trình mã hóa
Khi nhận được văn bản mật, ta giải mã bằng cách biến nó thành dạng chữ
số nhờ bảng tương ứng giữa chữ và số, sau đó trừ đi 3 ở mỗi chữ số và lại chuyển nó về dạng chữ để lại có văn bản ban đầu
Chú ý Khi cộng hoặc trừ đi 3 đưa ta vượt quá giới hạn của bảng tương
ứng, ta thay số đó bằng thặng dư dương bé nhất modulo số các phần tử của bảng tương ứng giữa chữ và số (trong bảng chữ cái tiếng Anh thì số này là 26) Sau đây ta xét ví dụ cụ thể với các chữ cái trong tiếng Việt
Trước hết ta lập tương ứng các chữ cái với các chữ số theo bảng sau:
Số 3 trong công thức (2.1) gọi là chìa khoá của mã Ceasar
Chẳng hạn muốn chuyển văn bản: Sang sơm mai se khơi hanh
Trước hết nhằm nâng cao tính bảo mật, ta tách thông báo thành nhóm 5
chữ cái Như vậy thông báo cần mã hoá là: Sangs ơmmai sekhơ ihanh
Ta chuyển thông báo sang dạng chữ số:
23 1 16 10 23 19 15 15 1 12 23 8 13 11 19 12 11 1 16 11
Áp dụng (2.1), dãy chữ số trên được chuyển thành:
26 4 19 13 26 22 18 18 4 15 28 11 16 14 22 15 14 4 19 14
Ta lại chuyển về dạng chữ cái, ta có văn bản mật:
ưbơkư rôôbm xhnlr mlbơl
Trang 40Ta cũng có thể lập một hệ mã mới bằng cách thay số 3 trong công thức
biết C,a,b
b Độ an toàn
Khi bắt được văn bản mật, người ta có thể dựa vào tần suất xuất hiện của chữ cái để đoán ra khoá giải mã Mặt khác, chỉ có 29 chữ cái khác nhau để chọn khoá cho loại mã nói trên Với công nghệ máy tính như hiện nay ta dễ dàng tìm ra văn bản gốc Như vậy, mã Ceasar cho thấy tính bảo mật không cao, với yêu cầu về độ bảo mật cao hơn, người ta dùng những hệ mật mã phức tạp hơn, sau đây là một vài hệ mã thường dùng, từ đơn giản đến phức tạp
2.3.2 Hệ mã khối
a Nguyên lý thực hiện
Hệ mã này không mã hoá từng chữ cái của văn bản, mà mã hóa từng khối chữ cái Trước tiên ta xét tập hợp mã khối hai chữ Với mỗi phép khối hai chữ ta chọn một ma trận cấp hai làm chìa khóa của mã Chẳng hạn:
11 12
21 22
a a A
a a
a i j nguyên thuộc đoạn [1; 29]
Khi đó các khối hai số P1P2 trong văn bản được chuyển thành các khối
hai số C 1 C 2 trong văn bản mật theo công thức:
C1 a11P1 + a12P2 (mod 29)