Đề tài : BÀI TOÁN LOGARITH RỜI RẠC VÀ ỨNG DỤNG TRONG MẬT MÃ KHOÁ CÔNG KHAI Luận văn gồm 04 chương cụ thể như sau: Chương 1: Tổng quan về mật mã học Chương 2: Bài toán logarith rời rạc Chương 3: Các hệ mật sử dụng bài toán Logarith rời rạc Chương 4: Kết luận và hướng nghiên cứu tiếp.
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-TRẦN VĂN DŨNG
BÀI TOÁN LOGARITH RỜI RẠC VÀ ỨNG DỤNG
TRONG MẬT MÃ KHOÁ CÔNG KHAI
LUẬN VĂN THẠC SỸ KỸ THUẬT
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-TRẦN VĂN DŨNG
BÀI TOÁN LOGARITH RỜI RẠC VÀ ỨNG DỤNG
TRONG MẬT MÃ KHOÁ CÔNG KHAI
Ngành : Kỹ thuật điện tử
Mã số : 60.52.70
LUẬN VĂN THẠC SỸ KỸ THUẬT
Người hướng dẫn khoa học: GS.TS NGUYỄN BÌNH
Trang 3Học viện Công nghệ Bưu chính Viễn thông
Cuối cùng tôi xin gửi lời cảm ơn đến bố mẹ, tất cả gia đình, bạn bè đã giúp đỡđộng viên tôi trong suốt quá trình học tập để tôi có được đến hôm nay
Xin chân thành cảm ơn!
Hà nội, 08-08-2008
Trần Văn Dũng
Trang 4Học viện Công nghệ Bưu chính Viễn thông
MỤC LỤC
MỤC LỤC ii
DANH MỤC HÌNH VẼ v
DANH MỤC CÁC BẢNG vi
DANH MỤC TỪ VIẾT TẮT vii
LỜI NÓI ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ MẬT MÃ HỌC 4
1.1 Khái quát về mật mã học 4
1.1.1.Giới thiệu về mật mã học 4
1.1.2.Sơ lược về mật mã học 4
1.2.Các hệ mật và các phương pháp thám mã 6
1.2.1.Các hệ mật mã khoá bí mật 6
1.2.2.Các hệ mật mã khoá công khai 8
1.2.3.Các phương pháp thám mã các hệ mật mã khoá bí mật 9
1.3.Ưu nhược điểm của các hệ mật mã 9
CHƯƠNG 2 BÀI TOÁN LOGARITH RỜI RẠC 13
2.1.Bài toán logarith tuyến tính 13
2.1.1.Định nghĩa 13
2.1.2.Các tính chất cơ bản 13
2.2.Phát biểu bài toán logarith rời rạc 13
2.2.1.Bài toán 13
2.2.2.Các tính chất cơ bản 14
2.3.Các phương pháp giải bài toán logarith rời rạc 15
2.3.1.Thuật toán vét cạn 15
2.3.2.Thuật toán bước đi lớn bước đi nhỏ ( Baby-step giant-step ) 15
2.3.3.Thuật toán của Pollard 15
2.3.4.Thuật toán Pohlig – Hellman 16
2.3.5.Thuật toán tính chỉ số ( Index-Calculus) 17
Trang 5Học viện Công nghệ Bưu chính Viễn thông
2.3.5.1.Tính chỉ số trên GF(p) 18
2.3.5.2.Tính chỉ số trên GF(2 n ) 20
2.3.5.3 Sàng trường số đặc biệt SNFS 21
2.3.5.4 Sàng trường số tổng quát GNFS 22
CHƯƠNG 3 CÁC HỆ MẬT SỬ DỤNG BÀI TOÁN LOGARITH RỜI RẠC24 3.1.Hệ mật Pohlig – Hellman 24
3.2.Hệ mật Massey - Omura 28
3.3.Hệ mật Diffie - Hellman 37
3.3.1.Bài toán Diffie – Hellman 37
3.3.2 Khởi tạo Diffie Hellman 38
3.3.3 Trao đổi khoá Diffie Hellman 38
3.4.Hệ mật trên đường cong Eliptic 39
3.4.1.Giới thiệu chung về đường cong Eliptic 39
3.4.1.1Quy tắc “cộng” các điểm như sau 41
3.4.1.2Quy tắc phép nhân đôi 44
3.4.1.3.Bài toán Logarith rời rạc trên đường cong Eliptic (ECDLP) 45
3.4.2 Đường cong Eliptic trên trường hữu hạn 45
3.4.2.1 Đường cong eliptic trên trường F p ( p là số nguyên tố ) 45
3.4.2.2.Đường cong eliptic trên trường 46
3.4.2.3.Phép nhân đường cong 50
3.4.3.Xây dựng các hệ mật trên đường cong Elliptic 51
3.4.3.1.Mã hoá dữ liệu 51
3.4.3.2.Thao tác giải mã 52
3.4.3.3.Các hệ mật đường cong Elliptic 53
3.4.3.4.Các phương pháp giải các bài toán ECDLP 56
3.4.3.4.1.Thuật toán vét cạn 56
3.4.3.4.2.Thuật toán bước lớn bước nhỏ 56
Trang 6Học viện Công nghệ Bưu chính Viễn thông
3.4.3.4.3.Thuật toán của Pollard 57
3.4.3.4.4.Thuật toán của Pollard 57
3.4.3.4.5.Thuật toán Pohlig – Hellman Elliptic 57
3.4.3.4.6.Phương pháp tính chỉ số và chỉ số ngược trên đường cong Elliptic 58
3.4.3.5.Một số vấn đề cài đặt của thuật toán Elliptic 60
3.4.3.5.1.Cài đặt đường cong Elliptic trên GF(p) 60
3.4.3.5.2.Cài đặt đường cong Elliptic trên GF(2 n ) 61
3.4.4.Kết luận 62
CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO 64
TÀI LIỆU THAM KHẢO 66
Trang 7Học viện Công nghệ Bưu chính Viễn thông
DANH MỤC HÌNH VẼ
Hình 1.1 Mô hình hệ thống mã khoá bí mật 7
Hình 1.2 Mô hình hệ thống mã khoá công khai 9
Hình 1.3.Đồ thị so sánh chi phí công phá khoá bí mật và khoá công cộng 11
Hình 3.1.Các giao thức của hệ thống mật Massey - Omura 30
Hình 3.2.Các giao thức của hệ thống EMO-1 33
Hình 3.3.Các giao thức của hệ thống mật EMO-2 36
Hình 3.4.Một ví dụ về đường cong Elliptic 40
Hình 3.5 Điểm vô cực 41
Hình 3.6 Phép cộng trên đường cong Elliptic P+Q=R 42
Hình 3.7 Phép nhân đôi 44
Trang 8Học viện Công nghệ Bưu chính Viễn thông
DANH MỤC CÁC BẢNG
Bảng 1.1.So sánh độ an toàn giữa khóa bí mật và khóa công khai 10 Bảng 3.1.So sánh số lượng các thao tác đối với các phép toán trên đường cong Elliptic trong hệ toạ độ Affine và hệ tọa độ chiếu 50
Trang 9Học viện Công nghệ Bưu chính Viễn thông
DANH MỤC TỪ VIẾT TẮT
AES Advanced Encryption Standard Chuẩn mã dữ liệu tiên tiến
DES Data Encryption Standard Chuẩn mã dữ liệu
ECC Elliptic curves Cryptographically Hệ mật trên đường cong EllipticECDLP Elliptic Curves Discrete Logarithm
Problem Bài toán Logarith rời rạc trên đườngcong Elliptic
Trang 10Học viện Công nghệ Bưu chính Viễn thông
LỜI NÓI ĐẦU
Trong sự phát triển của xã hội loài người, kể từ khi có sự trao đổi thông tinthì vấn đề bảo mật thông tin được đặt ra như một nhu cầu tất yếu Tuy nhiên,trong suốt nhiều thế kỷ, các kết quả nghiên cứu 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àynay, các ứng dụng bảo mật thông tin đang được sử dụng ngày càng phổ biến trongcá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ốcphòng…, cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng…
Với sự phát triển của khoa học kỹ thuật và công nghệ, cùng với các nhu cầuđặc biệt về bảo mật thông tin, ngày nay các kỹ thuật chính trong bảo mật thông tingồm: kỹ thuật mật mã (Cryptography), Kỹ thuật nguỵ trang (Steganography), Kỹthuật tạo bóng mờ (Watermarking-hay xăm điện tử) Bên cạnh việc làm thế nào chegiấu nội dung thông tin mật mã học phải đảm bảo các dịch vụ an toàn cơ bản là:
- Bí mật (Confidential): hệ thống đảm bảo thông tin được giữ bí mật Thôngtin có thể bị phát hiện, ví dụ như trong quá trình truyền nhận, nhưng ngườitấn công không thể hiểu được nội dung thông tin bị đánh cắp này
- Đảm bảo tính toàn vẹn(Intergrity ) : hệ thống bảo đảm tính toàn vẹn thôngtin trong liên lạc hoặc giúp phát hiện rằng thông tin đã bị sửa đổi
- Xác thực (Authentication): Giúp cho người nhận dữ liệu xác định được dữliệu mình nhận là dữ liệu gốc ban đầu Kẻ giả mạo không thể có khả năng đểgiả dạng một người khác hay nói cách khác là không thể mạo danh để gửi dữliệu Người nhận có khả năng kiểm tra nguồn gốc thông tin mà họ nhậnđược
- Tính không thể chối bỏ ( Non-repudation): Người gửi hay người nhận khôngthể chối bỏ sau khi đã gửi hoặc nhận thông tin
Để đảm bảo các dịch vụ an toàn này các nhà toán học đã phát triển các thuậttoán mã hoá khác nhau Từ những thuật toán được công khai để mọi người cùng sử
Trang 11Học viện Công nghệ Bưu chính Viễn thông
dụng và áp dụng như một chuẩn chung cho việc mã hoá dữ liệu; đến những thuậttoán mã hoá không được công bố Có thể phân loại các thuật toán mã hoá như sau:bao gồm mật mã khoá bí mật ( như DES, 3DES, RC4, AES…), mật mã khoá côngkhai (RSA, DIFFIE – HELLMAN…) Mật mã khoá bí mật: quá trình mã hóa và giải
mã một thông điệp sử dụng cùng một mã khóa gọi là khóa bí mật (secret key) hay khóa đối xứng (symmetric key) Do đó, vấn đề bảo mật thông tin đã mã hóa
hoàn toàn phụ thuộc vào việc giữ bí mật nội dung của mã khóa đã được sử dụng Vớitốc độ và khả năng xử lý ngày càng được nâng cao của các bộ vi xử lý hiện nay,phương pháp mã hóa chuẩn (Data Encryption Standard – DES) đã trở nên không
an toàn trong bảo mật thông tin
Nếu như vấn đề khó khăn đặt ra đối với các phương pháp mã hóa bí mật 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
giúp cho việc trao đổi mã khóa trở nên dễ dàng hơn Nội dung của khóa công khai (public key) 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 bí mật Vấn đề đặt ra đối với mật mã khoá công khai chính làphải tìm ra được hàm mật mã là một hàm dễ tính toán, song việc tìm hàm ngược(giải mã ) phải là rất khó khăn (đối với bất kỳ ai không được trao quyền giải mã) Tanhận thấy bài toán logarith rời rạc là một bài toán khó ( chưa có một thuật toán nàohiệu quả để tính logarith rời rạc một cách tổng quát) trong khi bài toán ngược luỹthừa rời rạc lại không khó (có thể sử dụng thuật toán bình phương và nhân) Vớimục đích là nghiên cứu tìm hiểu các hệ mật mã khoá công khai được sinh ra dựatrên bài toán logarith rời rạc để đánh giá mức độ bảo mật thông tin của các hệ mậttrên so với các hệ mật mã khác Luận văn gồm 04 chương cụ thể như sau:
Chương 1: Tổng quan về mật mã học
- Khái quát về mật mã học
- Trình bày tổng quát các hệ mật mã và phân loại, các phương pháp thámmã
- Ưu nhược điểm của các hệ mật mã
Chương 2: Bài toán logarith rời rạc
Trang 12Học viện Công nghệ Bưu chính Viễn thông
- Bài toán logarith tuyến tính
- Phát biểu bài toán logarith rời rạc
- Các phương pháp giải bài toán logarith rời rạc
Chương 3: Các hệ mật sử dụng bài toán Logarith rời rạc
Chương 4: Kết luận và hướng nghiên cứu tiếp.
Do khả năng cũng như thời gian còn hạn chế nên luận văn không thể tránhkhỏi các sai sót, rất mong nhận được sự chỉ bảo, đóng góp ý kiến của thầy cô, bạn
bè đồng nghiệp để luận văn được hoàn thiện hơn
Trang 13
Học viện Công nghệ Bưu chính Viễn thông
CHƯƠNG 1.
TỔNG QUAN VỀ MẬT MÃ HỌC 1.1 Khái quát về mật mã học
1.1.1.Giới thiệu về mật mã học
Mật mã học là ngành khoa học ứng dụng toán học vào việc biến đổi thôngtin thành một dạng khác với mục đích che dấu nội dung, ý nghĩa thông tin cần mãhóa Đây là một ngành quan trọng và có nhiều ứng dụng trong đời sống xã hội.Ngày nay, các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngàycàng phổ biến hơn trong các lĩnh vực khác nhau trên thế giới, từ các lĩnh vực anninh, 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…
Cùng với sự phát triển của khoa học máy tính và Internet, các nghiên cứu vàứng dụng của khoa học mật mã ngày càng trở nên đa dạng hơn, mở ra nhiềuhướng nghiên cứu chuyên sâu vào từng lĩnh vực ứng dụng đặc thù với những đặctrưng riêng Ứng dụng của khoa học mật mã không chỉ đơn thuần là mã hóa và giải
mã thông tin mà còn bao gồm nhiều vấn đề khác nhau cần được nghiên cứu và giảiquyết: chứng thực nguồn gốc nội dung thông tin (kỹ thuật chữ ký điện tử), chứngnhận tính xác thực về người sở hữu mã khóa (chứng nhận khóa công cộng), cácquy trình giúp trao đổi thông tin và thực hiện giao dịch điện tử an toàntrên mạng Những kết quả nghiên cứu về mật mã cũng đã được đưa vào trong các
hệ thống phức tạp hơn, kết hợp với những kỹ thuật khác để đáp ứng yêu cầu đadạng của các hệ thống ứng dụng khác nhau trong thực tế, ví dụ như hệ thống bỏphiếu bầu cử qua mạng, hệ thống đào tạo từ xa, hệ thống quản lý an ninh của cácđơn vị với hướng tiếp cận sinh trắc học, hệ thống cung cấp dịch vụmultimedia trên mạng với yêu cầu cung cấp dịch vụ và bảo vệ bản quyền sở hữutrí tuệ đối với thông tin số
1.1.2.Sơ lược về mật mã học
Khoa học về mật mã (cryptography) bao gồm:
Trang 14Học viện Công nghệ Bưu chính Viễn thông
Có ba phương pháp tấn công cơ bản của thám mã:
- Tấn công với bản rõ đã biết
- Tấn công với các bản rõ được chọn
- Tấn công với các bản mã được chọn
Có hai hệ thống mật mã chính là: mật mã khoá bí mật và mật mã khoá công khai.Khi xây dựng hệ mật người ta thường xem xét tới các tiêu chuẩn sau:
- Độ mật cần thiết
- Kích thước không gian khoá
- Tính đơn giản và tốc độ mã hoá và giải mã
- Tính lan truyền sai
- Tính mở rộng bản tin
Sau đây ta đưa ra định nghĩa một số khái niệm cơ bản về mã hóa :
1.Bản rõ X được gọi là là bản tin gốc Bản rõ có thể được chia nhỏ có kích thước
phù hợp
2.Bản mã Y là bản tin gốc đã được mã hoá Ở đây ta thường xét phương pháp mã
hóa mà không làm thay đổi kích thước của bản rõ, tức là chúng có cùng độ dài
Trang 15Học viện Công nghệ Bưu chính Viễn thông
3.Mã là thuật toán E chuyển bản rõ thành bản mã Thông thường chúng ta
cần thuật toán mã hóa mạnh, cho dù kẻ thù biết được thuật toán, nhưng không biếtthông tin về khóa cũng không tìm được bản rõ
4.Khoá K là thông tin tham số dùng để mã hoá, chỉ có người gửi và nguời
nhận biết Khóa là độc lập với bản rõ và có độ dài phù hợp với yêu cầu bảo mật
5.Mã hoá là quá trình chuyển bản rõ thành bản mã, thông thường bao gồm
việc áp dụng thuật toán mã hóa và một số quá trình xử lý thông tin kèm theo
6.Giải mã chuyển bản mã thành bản rõ, đây là quá trình ngược lại của mã
hóa
7.Mật mã là chuyên ngành khoa học của Khoa học máy tính nghiên cứu về
các nguyên lý và phương pháp mã hoá Hiện nay người ta đưa ra nhiều chuẩn antoàn cho các lĩnh vực khác nhau của công nghệ thông tin
8.Thám mã nghiên cứu các nguyên lý và phương pháp giải mã mà không
biết khoá Thông thường khi đưa các mã mạnh ra làm chuẩn dùng chung giữa cácngười sử dụng, các mã đó được các kẻ thám mã cũng như những người phát triển
mã tìm hiểu nghiên cứu các phương pháp giải một phần bản mã với các thông tinkhông đầy đủ
9.Lý thuyết mã bao gồm cả mật mã và thám mã Nó là một thể thống nhất,
để đánh giá một mã mạnh hay không, đều phải xét từ cả hai khía cạnh đó Các nhàkhoa học mong muốn tìm ra các mô hình mã hóa khái quát cao đáp ứng nhiều chínhsách an toàn khác nhau
1.2.Các hệ mật và các phương pháp thám mã
1.2.1.Các hệ mật mã khoá bí mật
Hệ thống mã hóa bí mật là hệ thống mã hóa trong đó quy trình mã hóa và
giải mã đều sử dụng chung một khoá - khóa bí mật Việc bảo mật thông tin phụ
thuộc vào việc bảo mật khóa
Trong hệ thống mã hóa quy ước, thông điệp nguồn được mã hóa với mã khóa k
được thống nhất trước giữa người gửi A và người nhận B Người A sẽ sử dụng mã
Trang 16Học viện Công nghệ Bưu chính Viễn thông
khóa k để mã hóa thông điệp x thành thông điệp y và gửi y cho người B; người B sẽ sử dụng mã khóa k để giải mã thông điệp y này Vấn đề an toàn bảo mật thông tin được mã hóa phụ thuộc vào việc giữ bí mật nội dung mã khóa k Nếu người C biết được mã khóa k thì C có thể “mở khóa” thông điệp đã được mã
hóa mà người A gửi cho người B.
- Xử lý bit ( chủ yếu trong ngôn ngữ lập trình)
Các hệ mật mã khoá bao gồm các hệ mật sau:
- Mật mã thay thế
- Mật mã hoán vị
- Mật mã Hill
- Hệ mật xây dựng trên các cấp số nhân xyclic trên vành đa thức
- Mã Affine ( trường hợp đặc biệt của hệ mã thay thế)
- Các hệ mật mã tích
- Các hệ mã dòng
Trang 17Học viện Công nghệ Bưu chính Viễn thông
Ngoài ra còn có phương pháp hỗn hợp thực hiện kết hợp các phương pháp trên
mà điển hình là chuẩn mã dữ liệu DES, chuẩn mã dữ liệu tiên tiến AES của Mỹ
1.2.2.Các hệ mật mã khoá công khai
Vấn đề phát sinh trong các hệ thống mã hóa bí mật là việc quy ước chung
mã khóa k giữa người gửi A và người nhận B Trên thực tế, nhu cầu thay đổi nội dung của mã khóa k là cần thiết, do đó, cần có sự trao đổi thông tin về mã khóa k giữa A và B Để bảo mật mã khóa k, A và B phải trao đổi với nhau trên một kênh
liên lạc thật sự an toàn và bí mật Tuy nhiên, rất khó có thể bảo đảm được sự an
toàn của kênh liên lạc nên mã khóa k vẫn có thể bị phát hiện bởi người C.
Ý tưởng về hệ thống mã hóa khóa công khai được Martin Hellman,Ralph Merkle và Whitfield Diffie tại Đại học Stanford giới thiệu vào năm 1976 Sau
đó, phương pháp Diffie-Hellman của Martin Hellman và Whitfield Diffie đã được
công bố Năm 1977, trên báo "The Scientific American", nhóm tác giả Ronald
Rivest, Adi Shamir và Leonard Adleman đã công bố phương pháp RSA, phươngpháp mã hóa khóa công cộng nổi tiếng và được sử dụng rất nhiều hiện nay trongcác ứng dụng mã hóa và bảo vệ thông tin RSA nhanh chóng trở thành chuẩn mãhóa khóa công cộng trên toàn thế giới do tính an toàn và khả năng ứng dụng củanó
Một hệ thống khóa công cộng sử dụng hai loại khóa trong cùng một cặpkhóa: khóa công cộng (public key) được công bố rộng rãi và được sử dụng trong
mã hóa thông tin, khóa riêng (private key) chỉ do một người nắm giữ và được
sử dụng để giải mã thông tin đã được mã hóa bằng khóa công cộng Các phương
pháp mã hóa này khai thác những ánh xạ f mà việc thực hiện ánh xạ ngược f –1 rất khó so với việc thực hiện ánh xạ f Chỉ khi biết được mã khóa riêng thì mới có thể thực hiện được ánh xạ ngược f –1 Khi áp dụng hệ thống mã hóa khóa công
cộng, người A sử dụng mã khóa công cộng để mã hóa thông điệp và gửi cho người
B Do biết được mã khóa riêng nên B mới có thể giải mã thông điệp mà A đã mãhóa Người C nếu phát hiện được thông điệp mà A gửi cho B, kết hợp với thông tin
Trang 18Học viện Công nghệ Bưu chính Viễn thông
về mã khóa công cộng đã được công bố, cũng rất khó có khả năng giải mã đượcthông điệp này do không nắm được mã khóa riêng của B
Hình 1.2 Mô hình hệ thống mã khoá công khai 1.2.3.Các phương pháp thám mã các hệ mật mã khoá bí mật
Trước tiên ta phân biệt các mức độ tấn công khác nhau vào các hệ mật Sauđây là một số loại thông dụng nhất
Mỗi loại hệ mật mã thì đều có các phương pháp thám mã tương ứng
1.3.Ưu nhược điểm của các hệ mật mã
Các phương pháp mã hóa bí mật có ưu điểm xử lý rất nhanh và khả năngbảo mật cao so với các phương pháp mã hóa khóa công cộng nhưng lại gặp phải
Trang 19Học viện Công nghệ Bưu chính Viễn thông
vấn đề khó khăn trong việc trao đổi mã khóa Ngược lại, các phương pháp mãhóa khóa công khai tuy xử lý thông tin chậm hơn nhưng lại cho phép người sửdụng trao đổi mã khóa dễ dàng hơn
Các phương pháp mã hóa bí mật có ưu điểm xử lý rất nhanh so với cácphương pháp mã hóa khóa công cộng Do khóa dùng để mã hóa cũng được dùng
để giải mã nên cần phải giữ bí mật nội dung của khóa và mã khóa được gọi làkhóa bí mật (secret key) Ngay cả trong trường hợp khóa được trao đổi trực tiếpthì mã khóa này vẫn có khả năng bị phát hiện Vấn đề khó khăn đặt ra đốivới các phương pháp mã hóa này chính là bài toán trao đổi mã khóa
Ngược lại, các phương pháp mã hóa khóa công khai giúp cho việc trao đổi mãkhóa trở nên dễ dàng hơn Nội dung của khóa công khai (public key) không cầnphải giữ bí mật như đối với khóa bí mật trong các phương pháp mã hóa bí mật
Bảng 1.1.So sánh độ an toàn giữa khóa bí mật và khóa công khai Phương pháp mã hoá bí mật Phương pháp mã hóa khóa công khai
Kích thước
mã khóa (bit) Thuật toán mã khóa (bit)Kích thước Ứng dụng
(kích thước tối thiểu)
80 SKIPJACK 512 Short DSS, PGP“low grade”
Trang 20Học viện Công nghệ Bưu chính Viễn thông
khóa công khai phải sử dụng mã khóa có độ dài lớn hơn nhiều lần mã khóa được
sử dụng trong mã hóa bí mật Điều này được thể hiện rõ hơn qua đồ thị so sánh chiphí cần thiết để công phá khóa bí mật và khóa công cộng trong Hình 1.3 Kíchthước mã khóa được tính dựa trên mô hình đánh giá, ước lượng chi phí phân tíchmật mã do Hội đồng Nghiên cứu Quốc gia Hoa Kỳ (National Research Council)
đề nghị [11]
Độ dài mã khoá (bits)Chi phí
Hình 1.3.Đồ thị so sánh chi phí công phá khoá bí mật và khoá công cộng
Trên thực tế, khóa công cộng dễ bị tấn công hơn khóa bí mật Để tìm ra đượckhóa bí mật, người giải mã cần phải có thêm một số thông tin liên quan đến cácđặc tính của văn bản nguồn trước khi mã hóa để tìm ra manh mối giải mã thay vìphải sử dụng phương pháp vét cạn mã khóa Ngoài ra, việc xác định xem thôngđiệp sau khi giải mã có đúng là thông điệp ban đầu trước khi mã hóa hay không lại
là một vấn đề khó khăn Ngược lại, đối với các khóa công cộng, việc công phá hoàntoàn có thể thực hiện được với điều kiện có đủ tài nguyên và thời gian xử lý Ngoài
ra, để có thể giải mã một thông điệp sử dụng phương pháp mã hóa khóa côngcộng, người giải mã cũng không cần phải vét cạn toàn bộ không gian mã khóa màchỉ cần khảo sát trên tập con của không gian này
Bên cạnh đó, khóa công khai còn là mục tiêu tấn công đáng giá đối với nhữngngười giải mã hơn các khóa bí mật Khóa công cộng thường dùng để mã hóa cáckhóa bí mật khi thực hiện việc trao đổi mã khóa bí mật Nếu khóa công khai bịphá thì các thông điệp sau đó sử dụng mã khóa này cũng bị giải mã Trong khi đó,
Trang 21Học viện Công nghệ Bưu chính Viễn thông
nếu chỉ phát hiện được một mã khóa bí mật thì chỉ có thông điệp sử dụng mã khóanày mới bị giải mã Trên thực tế, mã khóa bí mật thường chỉ được sử dụng một lầnnên ít có giá trị hơn so với khóa công cộng Tóm lại, mặc dù khóa công cộng đượcdùng để mã hóa các thông tin ngắn nhưng đây lại là các thông tin quan trọng
Trang 22
Học viện Công nghệ Bưu chính Viễn thông
CHƯƠNG 2.
BÀI TOÁN LOGARITH RỜI RẠC
2.1.Bài toán logarith tuyến tính
2.1.1.Định nghĩa
Trên trường số thực R với 0, 1 và hai số thực , x ta có thể tìm đượcmột số x thoả mãn x
Bài toán logarith tuyến tính chính là bài toán tìm x
2.1.2.Các tính chất cơ bản
Tính chất 1: Với 1, 2 0thì ta có:
1 2 1 2 1
1 2 2
log ( ) log log log ( ) log log
Giả sử cho Zp là một trường hữu hạn với p là 1 số nguyên tố lớn
Cho là phần tử sinh của nhóm nhân, 0 là một phần tử khác thuộc Zp ta cóthể tìm được một số nguyên tố x duy nhất thoả mãn:
Ta có thể viết: log = x
Bài toán logarith rời rạc chính là bài toán tìm x
Trang 23Học viện Công nghệ Bưu chính Viễn thông
2.2.2.Các tính chất cơ bản
Nếu là một phần tử sinh khác của Zp thì
log log log
So sánh giữa 2 bài toán logarith tuyến tính và logarith rời rạc trình bày ở trên
ta rút ra một số kết luận như sau:
- Đối với bài toán logarith tuyến tính: khi giải bài toán ngược thì đây cũng làmột bài toán khó giải nhưng ta có thể ước đoán được giá trị của nó trong mộtkhoảng xác định Vì vậy nó vẫn là một bài toán dễ tìm ra lời giải
- Đối với bài toán logarith rời rạc: ngoài tính khó giải của bài toán ngược ra
ta còn không thể ước đoán được giá trị của nó Đây là một bài toán rất khó giải hiệnnày không có thuật toán nào có hiệu quả để giải bài toán này Do vậy các nhànghiên cứu mật mã học xây dựng các hệ mật có khả năng bảo mật cao dựa trên tínhkhó giải của bài toán logarith rời rạc
Trang 24Học viện Công nghệ Bưu chính Viễn thông
2.3.Các phương pháp giải bài toán logarith rời rạc
2.3.1.Thuật toán vét cạn
Đây là thuật toán tự nhiên nhất và kém hiệu quả nhất để tính logaritth rời rạc.Người ta cứ thử tính 0, 1, 2, … cho đến khi nào đạt được thì thôi Phươngpháp này đòi hỏi O(n) phép toán nhân với n là cấp của và do đó không hiệu quảkhi n lớn và rõ ràng là hàm mũ thực sự theo logn
2.3.2.Thuật toán bước đi lớn bước đi nhỏ ( Baby-step giant-step )
Giả sử m = [ n] với n là cấp của
Thuật toán bước đi lớn bước đi nhỏ là sự thoả hiệp giữa thời gian và bộ nhớ củaphương pháp vét cạn và dựa trên quan sát sau là nếu x thì chúng có thể viết
x = im + j với 0 i,j < m Từ đó x=imj hay ( -m)i = j Vậy nên người ta
nó cũng cần O( n) phép toán nhân và O( n) phép toán tra bảng Tựu chung là
nó có thời gian chạy O( n) phép toán nhóm
2.3.3.Thuật toán của Pollard
Đây là thuật toán ngẫu nhiên với cùng thời gian chạy như trong thuật toánbước đi lớn bước đi nhỏ nhưng không cần đến không gian lưu trữ nhiều
Nó chia nhóm G thành ba tập S1, S2, S3 như nhau dựa trên tính chất dễ kiểmnghiệm Định nghĩa dãy các phần tử của nhóm x0, x1, x2, … với x0=1 như sau:
x x x
Nếu x
i S 1 Nếu xiS2Nếu x
i S 3
Trang 25Học viện Công nghệ Bưu chính Viễn thông
Dãy các phần tử của nhóm sẽ xác định hai dãy số nguyên a0, a1, a2, … và b0,
i i i
(bi - b2i).log ( a2i - ai) (mod n)Với điều kiện là bi b2i (mod n) thì chúng ta có thể dễ dàng giải phương trình đồng
dư này để tính ra log Trên thực tế thì xác xuất để cho bi b2i (mod n) là rấtnhỏ và có thể bỏ qua
Thuật toán này được thực hiện giống như hình chữ với điểm xuất phát làchân chữ này và vòng tròn phía trên chính là khi thuật toán rơi vào chu trình Chính
vì vậy mà nó được gọi là thuật toán do Pollard nghĩ ra
2.3.4.Thuật toán Pohlig – Hellman
Thuật toán này tận dụng lợi thế của phân rã của cấp n của nhóm G Giả sửphân rã của n = p1e1p2e2…pre r là phân rã nguyên tố của n Nếu x = log thì cáchtiếp cận này xác định xi = x mod pie i với 1 i r và sau đó sử dụng thuật toánGauss làm việc với định lý phần dư Trung Hoa để tìm ra x mod n
Mỗi số xi được tính theo các chữ số lo, l1, …, le i 1 trong biểu diễn pi phân rãcủa xi = l0 + l1p1 + … + le i 1 pe i 1với 0 lj pi – 1 Giả sử bước thứ j chúng ta
Nếu x
i S 1 Nếu xiS2Nếu x
i S 3
Nếu xiS1Nếu xiS2Nếu xiS3
Trang 26Học viện Công nghệ Bưu chính Viễn thông
2.3.5.Thuật toán tính chỉ số ( Index-Calculus)
Thuật toán tính chỉ số là thuật toán mạnh nhất được biết đến khi đem tấncông bài toán logarith rời rạc Không phải nhóm nào cũng có thể áp dụng thuật toántính chỉ số nhưng nếu áp dụng được thì nó cho chúng ta thời gian chạy là hàm tiểumũ
Thuật toán tính logarith rời rạc đối với nhóm cyclic:
Đầu vào: Phần tử sinh của nhóm cyclic G có cấp n và phần tử G
1 Chọn cơ sở phân tích S: Chọn tập con S = {p1, p2, …, pt } của G sao cho
“một tỷ lệ đáng kể” của tất cả các phần tử của G có thể được biểu diễn hiệuquả như là tích của các phần tử của S
2 Chọn các quan hệ tuyến tính liên quan đến logarith của các phần tử của S.2.1 Chọn số ngẫu nhiên k, 0 k n – 1 và tính k
2.2 Thử biểu diễn k thành tích các phần tử trong S:
1
i
t c k
i i
p
Trang 27Học viện Công nghệ Bưu chính Viễn thông
Nếu thành công thì lấy logarith cả hai vế của đẳng thức trên để đạtđược quan hệ tuyến tính:
c p
(mod n) (2.14)2.3 Lặp lại các bước 2.1 và 2.2 chừng nào t + c các quan hệ như trên đạt
được ( c là số tự nhiên nhỏ chẳng hạn c = 10 sao cho hệ phương trình đã cho
với t + c phương trình sẽ có nghiệm duy nhất với xác xuất cao )
3 Tìm các logarith của các phương trình trong S: Tính theo mod n giải hệ
phương trình có t + c phương trình với t ẩn số giống như trên tại bước 2 để
đạt được log p i, với 1 i t
4 Tính y:
4.1 Chọn số nguyên ngẫu nhiên k, 0 i k n 1 và tính k
4.2 Cố gắng biểu diễn k
thàn tích của các phần tử trong S:
1
t d k
i i
p
(2.15)Nếu cố gắng không đạt kết quả thì lặp lại bước 4.1 Ngược lại, lấy logarith cả
hai vế của đẳng thức thu được để đạt được :
Đối với trường GF(p) với số nguyên tố thì cơ sở phân tích được chọn sẽ là t
số nguyên tố đầu tiên Quan hệ phân rã trên cơ sở phân tích được sinh ra bằng cách
tính k
mod p và sử dụng phép chia thông thường để kiểm tra xem số nguyên này
có là tích của các số nguyên tố trong S hay không
Trang 28Học viện Công nghệ Bưu chính Viễn thông
Ví dụ: Thuật toán tính logarith rời rạc trên *
229
z với p = 229 Phần tử sinh
= 6 có cấp n = 228 Xét trường hợp = 13 Khi log613 được tính như sau đây sửdụng kỹ thuật tính chỉ số:
1 Cơ sở phân tích được chọn là 5 số nguyên tố đầu tiên S = {2, 3, 5, 7, 11}
2 Sáu quan hệ sau đây liên quan đến các phần tử của cơ sở phân tích đã đạtđược:
100 = 2log62 + 2log63 + log65 (mod 228)
18 = 4log62 + log611 (mod 228)
12 = log63 + log65 + log611 (mod 228)
62 = log62 + log67 + log611 (mod 228)
143 = log62 + 2log63 + log611 (mod 228)
206 = log62 + log63 + log65 + log67 (mod 228)
3 Giải hệ phương trình tuyến tính có sáu phương trình với năm ẩn số chúng
ta thu được lời giải log62 = 21, log63 = 208, log65 = 98, log67 = 107 và log611
Trang 29Học viện Công nghệ Bưu chính Viễn thông
2.3.5.2.Tính chỉ số trên GF(2 n )
Các phần tử của trường hữu hạn *
2n
F được biểu diễn thành các đa thức trên
Z2[x] có bậc cao nhất là n – 1 với phép nhân được thực hiện modulo một đa thức bấtkhả quy f(x) có bậc n trên Z2[x] Cơ sở phân tích S được chọn là tập các đa thức bấtkhả quy trên Z2[x] có bậc cao nhất là một cận b nào đó Quan hệ phân tích đượcsinh bằng cách tính k
mod f(x) và sử dụng phép chia thông thường để kiểm traxem đa thức này có là tích của các đa thức trong S không
Ví dụ: Thuật toán tính logarith trên 7
* 2
F Đa thức f(x) = x7 + x + 1 bất khảquy trên Z2 Từ đó các phần tử của trường hữu hạn GF(27) có cấp 128 được biểudiễn là một tập của tất cả các đa thức trên Z2[x] có bậc cao nhất là 6 với các phépnhân được thực hiện modulo f(x) Cấp của 7
* 2
F là n = 27 – 1 = 127 và = x là phần
tử sinh của 7
* 2
F Giả sử = x4 + x3 + x2 + x + 1 Khi đó y = log có thể đượctính như sau sử dụng kỹ thuật tính chỉ số:
1 Cơ sở phân tích được chọn là tập tất cả các đa thức bất khả quy trên Z2[x]
Để cho thuận tiện chúng ta kí hiệu p1 = logxx, p2 = logx(x+1), p3 = logx(x2
+ x +1), p4 = logx(x3 + x +1), p5 = logx(x3 + x2 +1) Sau đó chúng ta cócác phương trình:
18 = 4p1 + 2p2 (mod 127 )
Trang 30Học viện Công nghệ Bưu chính Viễn thông
Thuật toán chỉ số trên GF(q) trong cả hai trường hợp q = p với p nguyên tố
và q = 2n đều có thời gian chạy kỳ vọng là Lq[1
2,c] với c>0 là hằng số Thời gianchạy kỳ vọng của thuật toán tính chỉ số là tiểu hàm mũ tốt hơn so với các thuật toánthời gian chạy là hàm mũ thực sự trước đây nhưng chưa phải là tốt nhất cả về lýthuyết và thực hành hiện nay
Người ta tìm ra những thuật toán là biến thể của thuật toán tính chỉ số theonghĩa sử dụng những kỹ thuật toán học và môi trường tính toán đặc biệt để thiết kếthành các thuật toán có thời gian chạy tốt hơn về lý thuyết và thực hành Một loại
thuật toán như vậy chính là thuật toán sàng trường số với thời gian chạy là Lq[1
3,c]với q = p nguyên tố và c = 1.923
Trang 31Học viện Công nghệ Bưu chính Viễn thông
2.3.5.3 Sàng trường số đặc biệt SNFS
Đối với trường hợp SNFS chúng ta biết tất cả mọi thông tin chi tiết về trường
số từ nhóm các đơn vị, số lớp, những phần tử sinh của ideal nguyên tố, … và trườnghợp SNFS thường được áp dụng cho các số có dạng đặc biệt
Trong trường hợp SNFS đối với GF(p) thì số p thường có dạng đặc biệt là re – s với
r, s là nhỏ Ngoài ra còn có thể xét đến một số biến thể của của p là những số códạng tương tự như vậy Chẳng hạn chúng ta có thể mở rộng ra các số p có dạng m.re
– s với m, r, s là nhỏ
Do biết được những thông tin về cụ thể về trường số được xét nên việc tínhtoán sẽ thuận lợi hơn và nhiều kỹ thuật được áp dụng hơn Người ta có thể phân tíchcác số đại số ai - bi thành tích của các đại số trong cơ sở phân tích đại số và cácphần tử sinh trong nhóm đơn vị của vành các số nguyên đại số thay vì phải tính toánhình thức trên các ideal
Sau đó các đại số được sàng trên cả cơ sở phân tích hữu tỷ và cơ sở phân tíchđại số và chỉ giữ lại các số đại số nào là mịn mà thôi Người ta dùng biến đổi đại sốtuyến tính theo modulo (p-1) đối với các phần tử mịn trên cả cơ sở phân tích đại số
và các phần tử sinh của nhóm đơn vị của vành các số nguyên đại số để nhận được( )e i 1
Nhưng không phải kiểu số nguyên tố p nào chúng ta cũng có thể xây dựngđược trường số đặc biệt tương ứng và do đó có thể áp dụng thuật toán tính chỉ sốcũng như các biến thể khác của nó
2.3.5.4 Sàng trường số tổng quát GNFS
Trang 32Học viện Công nghệ Bưu chính Viễn thông
Đối với trường hợp GNFS chúng ta giả thiết chỉ có những thông tin chungnhất như đã xét trên đây Trường hợp GNFS có thể áp dụng cho một số nguyên tố pcủa bài toán
Do vậy, chúng ta không thể biết cấu trúc của nhóm đơn vị của vành các sốnguyên đại số và cấu trúc sinh của các ideal nguyên tố Chúng ta buộc phải tínhtoán sàng tìm phần tử mịn bằng việc phân rã ideal thay vì phân rã các số đại số như
đã được thực hiện trên đây
Tính toán hình thức như vậy sẽ kém hiệu quả hơn so với trường hợp SNSFnhưng bù lại phương pháp GNFS có thể áp dụng cho các loại trường hữu hạn GF(p)khác nhau
Trên thực tế ngoài cách áp dụng theo mô hình tính chỉ số người ta còn có thể
có những mô hình khác nữa và những cải tiến thực hành cài đặt để cho phươngpháp sàng trường số trở thành hiện thực là phương pháp tốt nhất để tính logarith rờirạc trên GF(p) và GF(pn)
Nếu chúng ta có công thức tính độ phức tạp tính toán của thuật toán sàngtrường số để tính logarith rời rạc trên GF(p) là:
đặt là
1 3
1,33
p
L
như trước đây dự đoán
Trang 33Học viện Công nghệ Bưu chính Viễn thông
Ta sẽ chỉ ra cách tính giá trị
x = a mod qc (3.4)
0 x qc-1 Ta có thể biểu diễn x theo cơ số q như sau:
1 0
c
i i i
a = x + qcs (3.6)với s là một số nguyên nào đó
Bước đầu tiên của thuật toán tính a0 Kết quả chính ở đây là:
Trang 34Học viện Công nghệ Bưu chính Viễn thông
Kết quả này đúng khi và chỉ khi:
0
0 1
0 0
1 1
i c i i
p
a q q s q
i i
cho tới i (p-1)/q (mod p)
với một giá trị i nào đó Khi điều này xảy ra ta có a0 =i
Bây giờ nếu c = 1 thì ta đã thực hiện xong Ngược lại, nếu c > 1 thì phải tiếptục xác định a1 Để làm điều đó ta phải xác định
1p q (mod )
p
1 1 1
c
i i i
Trang 35Học viện Công nghệ Bưu chính Viễn thông
log mod c c i
i i
Thuật toán 3.1.Thuật toán Pohlig - Hellman để tính log mod q c
Chúng ta minh hoạ thuật toán Pohlig - Hellman (P - H) qua một ví dụ nhỏ
Trang 36Học viện Công nghệ Bưu chính Viễn thông
3 = 7
4 = 25Bởi vậy a0 = 4 và a 4 ( mod 7)
Trang 37Học viện Công nghệ Bưu chính Viễn thông
Cuối cùng giải hệ phương trình
a 3 ( mod 4)
a 4 ( mod 7)bằng định lý phần dư China, ta nhận được a 11( mod 28) Điều này có nghĩa là đãtính được log218 trong Z29 là 11
3.2.Hệ mật Massey - Omura
Hệ thống mật Massey-Omura là một hệ thống khoá công khai nổi tiếng Hệthống có những đặc tính làm cho nó dễ bị tấn công và giải mã Đặc biệt hệ thốngMassey-Omura truyền thống là một hệ thống theo luật số mũ sử dụng modul hoànhảo Do đó một người giải mã có thể có được khoá mật mã và modul có thể tínhtoán dễ dàng khoá giải mã tương ứng và bản tin chặn giải mã Hệ thống mật mã nàyđược phát triển theo sau giao thức tiêu chuẩn Massey-Omura, ngoài ra với hai mởrộng được đưa ra để cải thiện bảo mật
Hệ thống Massey-Omura (EMO-1) thay thế các modul quan trọng với một tổhợp có thể sinh ra hai số nguyên tố lớn khác nhau
Theo cách này hệ thống được cung cấp với mức bảo mật cao tương tự như hệthống khoá bảo mật công khai RSA
Một phiên bản lớn hơn của hệ thống Massey-Omura (EMO-2) cộng một chữ ký
số vào hệ thống EMO-1 Chữ ký số cho phép nhận bản tin được mã hoá với giaothức EMO-2 để xác thực tính đồng nhất của người gửi
Giới thiệu
Hệ thống mã hoá có các dạng khác nhau Một trong những tiêu chuẩn phân loại
hệ thống mã hoá là dựa trên liệu khoá mật mã được tạo ra như một khoá công khai.Những hệ thống tạo ra các thông tin công khai được biết đến có liên quan hệ thốngmật khoá công khai Ngoài ra, nó không đưa ra khoá mật mã, được biết đến như là
hệ thống mật khoá bí mật Hệ thống mật Massey-Omura, nó dựa trên cơ sở lý thuyếttoán học Fermat
Trang 38Học viện Công nghệ Bưu chính Viễn thông
Hệ thống mật Massey-Omura.
Chi tiết cấu trúc của hệ thống Massey-Omura cũng như các giao thức tương ứngđược mô tả như sau
Thiết lập hệ thống thông tin Để thiết lập một hệ thống mật Massey-Omura
cho các thành phần của một mạng, khóa tập trung thực hiện các chức năng sau:
1 Một ký tự A được lựa chọn
2 Độ dài N của bản tin được tính đến Do đó N là số ký tự lớn nhất của bản tin
3 Sơ đồ S được tính đến để chuyển đổi bản tin dạng ký tự sang dạng số vàngược lại
4 Số nguyên L lớn có thể biểu diễn một bản tin được xem xét dựa trên ký tự A,
độ dài lớn nhất N và sơ đồ S
5 Một số nguyên tố p >L được lựa chọn như modul mạng
6 Đối với mỗi thành phần của mạng, một số nguyên wi được lựa chọn như mộtkhoá mật dạng gcd{wi,p-1}=1
7 Đối với mỗi số nguyên wi , xi=wi-1(mod p-1) được tính toán như khoá giải
mã Sự tồn tại của xi được đảm bảo do wI là một thành phần của một nhómcác đơn vị modul p-1, trong khi tính toán của xi có được nhờ sử dụng thuậttoán Euclidean
8 Mỗi thành phần mạng được cung cấp với khoá mật mã riêng của nó và khoágiải mã riêng wi và xi tương ứng
9 Các tham số A,N,S,L và p được công khai trong các danh mục trung tâm.Ngoài ra, wi và xi là các khoá riêng, và do vậy nó được biết đến như khoátrung tâm và các thành phần mạng riêng biệt có thể gán chúng từ đó
Giao thức tương ứng Giả thiết thành phần mạng Bob có khoá wi=r và xi=t,trong khi thành phần mạng Sue có khoá wj=u và xj=v Khi Bob gửi một bản tinđến Sue, các giao thức sau quan sát được
1 Bob tạo bản tin m sử dụng ký tự A,không vượt quá độ dài tối đa N
2 Bob chuyển đổi bản tin m sang giá trị số tương ứng M<=L sử dụng
sơ đồ S