DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT{0,1}∗ Ký hiệu chuỗi bit có độ dài bất kỳ {0,1}� Ký hiệu chuỗi bit có độ dài � � Hàm phi Euler của � ACMA Tấn công thông điệp được lựa chọn thích
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG
VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ
ĐỖ VIỆT BÌNH
NGHIÊN CỨU PHÁT TRIỂN GIAO THỨC
TRAO ĐỔI KHÓA AN TOÀN
LUẬN ÁN TIẾN SĨ TOÁN HỌC
HÀ NỘI - 2018
Trang 2ĐỖ VIỆT BÌNH
NGHIÊN CỨU PHÁT TRIỂN GIAO THỨC
TRAO ĐỔI KHÓA AN TOÀN
Chuyên ngành: Cơ sở toán học cho tin học
Ma sô: 9 46 01 10
LUẬN ÁN TIẾN SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
1 PGS TS Nguyễn Hiếu Minh
2 TS Nguyễn Mạnh Linh
HÀ NỘI - 2018
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, các kếtquả nghiên cứu là trung thực và chưa được công bố trong bất kỳ công trìnhnào khác Các dữ liệu tham khảo được trích dẫn đầy đủ
TÁC GIẢ LUẬN ÁN
Đỗ Việt Bình
Trang 4LỜI CẢM ƠN
Trong quá trình nghiên cứu và hoàn thành luận án, Nghiên cứu sinh đãnhận được sự định hướng, giúp đỡ, các ý kiến đóng góp quý báu và những lờiđộng viên của các nhà khoa học, các thầy cô giáo, đồng nghiệp và gia đình
Trước hết, Nghiên cứu sinh xin bày tỏ lời cảm ơn đến PGS, TS NguyễnHiếu Minh, TS Nguyễn Mạnh Linh, cùng nhóm nghiên cứu tại Viện Côngnghệ thông tin, Viện Khoa học và Công nghệ Quân sự
Cho phép Nghiên cứu sinh chân thành cảm ơn các thầy cô giáo trongViện Công nghệ thông tin, Viện Khoa học và Công nghệ Quân sự đã giúp đỡ
và có nhiều đóng góp quý báu trong suốt thời gian Nghiên cứu sinh thực hiệnluận án
Nghiên cứu sinh chân thành cảm ơn Ban Giám đốc, Phòng Đào tạo/Viện Khoa học và Công nghệ Quân sự đã tạo điều kiện thuận lợi để Nghiêncứu sinh hoàn thành nhiệm vụ nghiên cứu
Cuối cùng, Nghiên cứu sinh bày tỏ lời cảm ơn tới đồng nghiệp, giađình, và bạn bè đã luôn động viên, chia sẻ, ủng hộ và giúp đỡ Nghiên cứusinh trong suốt quá trình học tập và nghiên cứu vừa qua
NCS Đỗ Việt Bình
Trang 5MỤC LỤC
Trang
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT vi
DANH MỤC CÁC HÌNH VẼ ix
DANH MỤC CÁC BẢNG x
MỞ ĐẦU 1
Chương I: TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU 8
1.1 Tổng quan về bài toán trao đổi khóa 8
1.1.1 Khái niệm giao thức trao đổi khóa 11
1.1.2 Các tính chất an toàn của giao thức trao đổi khóa 12
1.1.3 Giao thức trao đổi khóa an toàn 17
1.1.4 Bài toán trao đổi khóa nhóm 20
1.2 Tổng quan về lược đồ chữ ký số 23
1.2.1 Cơ sở toán học 24
1.2.2 Lược đồ chữ ký số 27
1.3.Kết luận chương 1 38
Chương II: PHÁT TRIỂN GIAO THỨC TRAO ĐỔI KHÓA CÓ XÁCTHỰC DỰA TRÊN HAI BÀI TOÁN KHÓ 40
2.1 Phát triển lược đồ chữ ký số dựa trên hai bài toán khó 40
2.1.1 Lược đồ thứ nhất (Rabin và Schnorr) 48
2.1.2 Lược đồ thứ hai (RSA và Schnorr) 49
2.1.3 Đánh giá khả năng bảo mật 50
Trang 62.2 Phát triển giao thức trao đổi khóa có xác thực dựa trên hai bài
toán khó 52
2.2.1 Một số phát triển giao thức trao đổi khóa an toàn 53
2.2.2 Mô tả giao thức DH–MM–KE 60
2.2.3 Đánh giá giao thức 65
2.3 luận chươngKết 2 68
Chương III: PHÁT TRIỂN GIAO THỨC KÝ VÀ MÃ HÓA ĐỒNG THỜIDỰA TRÊN HAI BÀI TOÁN KHÓ 69
3.1 Giao thức ký và mã hóa đồng thời 69
3.1.1 Phương pháp ký rồi mã hóa 70
3.1.2 Phương pháp ký và mã hóa đồng thời 71
3.1.3 Một số nghiên cứu về ký và mã hóa đồng thời 73
3.2.Phát triển giao thức ký và mã hóa đồng thời DH–MM–SC 75
3.2.1 Mô tả giao thức 75
3.2.2 Đánh giá giao thức 76
3.3 Phát triển giao thức ký và mã hóa đồng thời có thể chối từ DH–MM–DSC 79
3.3.1 Mô tả giao thức 82
3.3.2 Đánh giá giao thức 84
3.4.Kết luận chương 3 87
Chương IV: PHÁT TRIỂN GIAO THỨC TRAO ĐỔI KHÓA NHÓM 88
4.1.Đặt vấn đề 88
4.1.1 Giao thức IKA.1 90
Trang 74.1.2 Giao thức IKA.2 91
4.2 xuấtĐề giao thức trao đổi khóa nhóm 93
4.3 Đánh giá giao thức 94
4.3.1 Không để lộ khóa cặp 94
4.3.2 Dễ dàng hoán vị để hình thành khóa mới 95
4.3.3 Đánh giá độ phức tạp 96
4.4.Kết luận chương 4 97
KẾT LUẬN 98
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ 100
TÀI LIỆU THAM KHẢO 101
Trang 8DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
{0,1}∗ Ký hiệu chuỗi bit có độ dài bất kỳ
{0,1}� Ký hiệu chuỗi bit có độ dài �
(�) Hàm phi Euler của �
ACMA Tấn công thông điệp được lựa chọn thích ứng (Adaptive Chosen
Message Attack)AKA Hoạt động bổ trợ trao đổi khóa (Auxiliary Key Agreement)AKAKC Giao thức trao đổi khóa có xác thực cùng xác nhận khóa
(Authenticated Key Agreement witk Key Confirm)CNTT Công nghệ thông tin
DoS Từ chối dịch vụ (Denial Of Service)
DPG Nhóm ngang hàng động (Dynamic Peer Group)
DS Chữ ký số (Digital Signature)
DSA Thuật toán chữ ký số (Digital Signature Algorithm)
DSS Chuẩn chữ ký số (Digital Signature Standard)
ECC Mã hóa trên đường cong elliptic (Elliptic Curve Cryptography)
Trang 9ECDHKE Trao đổi khóa Diffie–Hellman trên đường cong elliptic (Elliptic
Curve Diffie–Hellman Key Exchange)ECDLP Bài toán logarithm rời rạc trên đường cong elliptic (Elliptic
Curve Discrete Logarithm Problem)ECDSA Thuật toán chữ ký số trên đường cong elliptic (Elliptic Curve
Digital Signature Algorithm)ECM Phương pháp phân tích thừa số trên đường cong Elliptic (Elliptic
Curve Method)ECMQV Giao thức MQV trên đường cong elliptic (Elliptic Curve MQV)
EF Tồn tại giả mạo (Existential Forgery)
EKC Xác nhận khóa hiện (Explicit key Confirmation)
EKA Xác thực khóa hiện (Explicit key Authentication)
��� Ước số chung lớn nhất (Greatest Common Divisor)
GCMA Tấn công thông điệp được lựa chọn tổng quát (Generic Chosen
Message Attack)GDH Giao thức trao đổi khóa nhóm Diffie–Hellman (Group Diffie–
Hellman)
��� Thủ tục tạo khóa (Generation)
)
�(� Giá trị băm của �
IFP Bài toán phân tích thừa số nguyên tố (Integer Factorization
Problem)IKA Xác thực khóa ẩn (Implicit Key Authentication)
IKC Xác nhận khóa ẩn (Implicit Key Confirmation)
��� Khóa phiên theo hướng từ A tới B
��� Khóa phiên theo hướng từ B tới A
KCI Giả mạo khóa thỏa thuận (Key Compromise Impersonation)KKS Độ an toàn khóa đã biết (Known – Key Security)
KMA Tấn công thông điệp đã biết (Known Message Attack)
KOA Tấn công vào khóa (Key–Only Attacks)
Trang 10MA Tấn công vào thông điệp (Message Attacks)
MITM Tấn công kẻ đứng giữa (Man–In–The–Middle Attack)
NFS Thuật toán sàng trường số (Number Field Sieve)
P2P Giao thức ngang hàng (Peer to Peer)
PFS An toàn đầy đủ về phía trước (Perfect Forward Secrecy)
PGP Bảo mật rất mạnh (Pretty Good Privacy)
�� Khóa công khai (Public Key)
QS Thuật toán sàng bậc hai (Quadratic Sieve)
�� Thuật toán ký và mã hóa (Signcryption)
SF Giả mạo có lựa chọn (Selective Forgery)
��� Thủ tục ký (Sign)
�� Khóa bí mật (Secret Key)
SSR Tiết lộ trạng thái phiên (Session-State Reveal)
TB Phá vỡ hoàn toàn (Total Break)
���� Thời gian sinh số nguyên tố ngẫu nhiên
���� Độ phức tạp thời gian của phép mũ modulo
���� Độ phức tạp thời gian của phép nhân modulo
�� Độ phức tạp thời gian của việc thực hiện hàm băm
���� Độ phức tạp thời gian của phép tính nghịch đảo modulo
���� Độ phức tạp thời gian của phép tính đồng dư Trung Hoa
�� Thuật toán giải mã và xác thực (Unsigncryption)
UF Giả mạo tổng quát (Universal Forgery)
UKS Tấn công không biết khóa chia sẻ (Unknown Key–Share attacks)
��� Thủ tục xác thực (Verify)
�∗
Trang 11DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Quy trình tạo chữ ký số 28
Hình 1.2 Quy trình xác thực chữ ký số 29
Hình 2.2 Giao thức trao đổi khóa L Harn 55
Hình 2.3 Giao thức trao đổi khóa Phan 57
Hình 2.4 Giao thức trao đổi khóa của Jie Liu và Jianhua Li 59
Hình 2.5 Giao thức DH–MM–KE 64
Hình 3.1 Giai đoạn ký và mã hóa 73
Hình 3.2 Giai đoạn giải mã và xác thực 73
Hình 3.3 Giao thức DH–MM–SC 76
Hình 3.4 Giao thức DH–MM–DSC 84
Hình 4.1 Sơ đồ giao thức IKA.1 90
Hình 4.2 Ví dụ thực hiện IKA.1 cho nhóm 4 thành viên [44] 90
Hình 4.3 Sơ đồ giao thức IKA.2 92
Hình 4.4 Ví dụ thực hiện IKA.2 cho nhóm 4 thành viên [44] 92
Hình 4.5 Sơ đồ giao thức NGDH1 94
Trang 12DANH MỤC CÁC BẢNG
Bảng 1.1 Dữ liệu lịch sử của bài toán phân tích thừa số nguyên tố 27
Bảng 2.1 So sánh độ phức tạp thời gian 52
Bảng 2.2 Độ phức tạp thời gian của giao thức DH–MM–KE 67
Bảng 3.1 Độ phức tạp thời gian của giao thức DH–MM–SC 78
Bảng 3.2 Kích thước bản ký mã hóa của giao thức DH–MM–SC 79
Bảng 3.3 Độ phức tạp thời gian của giao thức DH–MM–DSC 86
Bảng 3.4 Kích thước bản ký mã hóa của giao thức DH–MM–DSC 86
Bảng 4.1 Độ phức tạp của giao thức IKA.1 91
Bảng 4.2 Độ phức tạp của giao thức IKA.2 93
Bảng 4.3 Độ phức tạp của giao thức NGDH1 97
Trang 13MỞ ĐẦU
1 Tính cấp thiết của đề tài nghiên cứu
Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, cáctiến bộ về điện tử viễn thông và công nghệ thông tin không ngừng được pháttriển để nâng cao chất lượng và lưu lượng truyền tin thì các biện pháp bảo vệthông tin cũng cần được đổi mới để thích nghi Các biện pháp bảo vệ an toànthông tin có thể được chia thành ba nhóm sau:
- Bảo vệ an toàn thông tin bằng các biện pháp hành chính;
- Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật;
- Bảo vệ an toàn thông tin bằng các biện pháp thuật toán
Các biện pháp bảo vệ an toàn thông tin có thể được ứng dụng riêng rẽhoặc phối kết hợp Biện pháp hiệu quả và kinh tế nhất hiện nay là biện phápthuật toán
Môi trường khó bảo vệ an toàn thông tin nhất và cũng là môi trườngđối phương dễ xâm nhập nhất đó là môi trường mạng Để đảm bảo an toànthông tin dữ liệu trên đường truyền tin và trên mạng máy tính có hiệu quả thìđiều trước tiên là phải lường trước hoặc dự đoán trước các nguy cơ mất antoàn, nguy cơ bị tấn công, các sự cố rủi ro có thể xảy ra đối với thông tin dữliệu được lưu trữ và trao đổi trên đường truyền tin cũng như trên mạng Xácđịnh càng chính xác các nguy cơ nói trên thì càng quyết định được tốt các giảipháp để giảm thiểu các thiệt hại Có hai loại hành vi xâm phạm thông tin dữliệu đó là: tấn công chủ động và tấn công bị động Tấn công bị động chỉ nhằmmục đích cuối cùng là nắm bắt được thông tin (đánh cắp thông tin) Tấn công
bị động có khi không lấy được nội dung cụ thể của bản tin nhưng có thể dò rađược người gửi, người nhận nhờ thông tin điều khiển giao thức chứa trongphần đầu các gói tin Kẻ xâm nhập có thể kiểm tra được số lượng, độ dài vàtần số trao đổi Vì tấn công thụ động không làm sai lệch hoặc hủy hoại nộidung thông
Trang 14tin dữ liệu được trao đổi nên thường khó phát hiện nhưng vẫn có những biệnpháp ngăn chặn hiệu quả Tấn công chủ động là dạng tấn công có thể làm thayđổi nội dung, xóa bỏ, làm trễ, sắp xếp lại thứ tự hoặc làm lặp lại gói tin tạithời điểm tấn công hoặc sau đó một thời gian Tấn công chủ động có thể thêmvào một số thông tin ngoại lai để làm sai lệch nội dung thông tin trao đổi Tấncông chủ động dễ phát hiện nhưng để ngăn chặn hiệu quả thì khó khăn hơnnhiều Một thực tế là không có một biện pháp bảo vệ an toàn thông tin dữ liệunào là đứng vững hoàn toàn trước các hành vi tấn công từ bên ngoài Một hệthống dù được bảo vệ chắc chắn đến đâu cũng không thể đảm bảo là an toàntuyệt đối.
Mật mã học là ngành khoa học ứng dụng toán học vào việc biến đổithông tin thành một dạng khác với mục đích che dấu nội dung, ý nghĩa thôngtin cần mã hóa Đây là một ngành quan trọng và có nhiều ứng dụng trong đờisố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ày càng phổ biến hơn trong nhiều 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,…
Cùng với sự phát triển của khoa học máy tính và Internet, các nghiêncứ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ở ranhiều hướng nghiên cứu chuyên sâu vào từng lĩnh vực ứng dụng đặc thù vớinhững đặc trư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ải quyết: Chứng thực nguồn gốc nội dung thông tin (kỹthuật chữ ký điện tử), chứng nhậ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ác quy trình giúp trao đổi thông tin và thựchiện giao dịch điện tử an toàn trê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 đa dạng của các hệ thống ứng dụng khácnhau trong
Trang 15thự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ữu trí tuệ đối với thông tin số,
Mật mã hay các giải pháp bảo mật được sử dụng để bảo vệ tính bí mậtcủa thông tin khi chúng được truyền trên các kênh truyền thông công cộng.Giả sử nếu một người A muốn gửi cho người B một văn bản P, để bảo mật Alập cho P một bản mật mã C bằng một phương pháp toán học nào đó, và thay
vì gửi cho B văn bản P, A gửi cho B văn bản C B nhận được C thực hiện giải
mã để thu được P Để A biến P thành C và B biến C thành P, A và B phảithống nhất sử dụng chung một hệ mật nào đó có thể là hệ mật khóa bí mậthoặc hệ mật khóa công khai
Trong hệ mật khóa bí mật, bước mã hóa và giải mã đều sử dụng chungmột khóa bí mật �, và với các giá trị của � khác nhau ta thu được các bản mãkhác nhau Tính an toàn của hệ mật phụ thuộc vào hai yếu tố là thuật toánphải đủ mạnh để không thể giải mã được văn bản nếu đơn thuần chỉ dựa vàobản mã, và tính an toàn của khóa (chứ không phải là an toàn thuật toán), tức lànếu biết bản mã và thuật toán mã hóa nhưng không biết khóa vẫn không thểtìm được bản rõ Nói cách khác, ta không cần giữ bí mật thuật toán mà chỉ cầngiữ bí mật khóa Việc giữ bí mật khóa trở thành điểm mấu chốt của hệ mậtloại này, nếu vì lý do nào đó mà khóa bị lộ thì tất cả những văn bản hai bêntrao đổi với nhau cũng sẽ bị lộ
Để sử dụng hệ mật khóa bí mật yêu cầu hai bên trước khi truyền tinphải có chung một giá trị khóa, giá trị này cần phải giữ bí mật và điều nàykhông thuận tiện trong môi trường truyền thông công cộng như hiện nay Vìthế người ta đã đưa ra cách mã hóa khác, cho phép các bên trong hệ thống cóthể truyền tin cho nhau bằng cách công bố công khai thông tin cần cho việclập mã, khiến
Trang 16cho người gửi và người nhận không cần quy ước trước với nhau và cũngkhông có những bí mật chung Bên nhận được bản mã sử dụng khóa bí mậtcủa mình giải mã để thu được văn bản gốc Mã hóa được thực hiện rất dễdàng, bất kỳ người nào cũng có thể làm được, còn việc giải mã rất khó khănnếu như không có khóa riêng, còn nếu có nó thì việc giải mã cũng dễ như việc
mã hóa Việc giữ bí mật khóa trong hệ mật khóa công khai không còn là vấn
đề lớn nữa, vì mỗi người có một khóa riêng chỉ có chính người đó biết màthôi nên khả năng làm lộ gần như là không có Vì vậy đối với những hệ mậtloại này tính an toàn của chúng nằm trong khả năng không bị lộ của chìa khóa
bí mật từ những thông tin công khai tất cả mọi người đều có, mà điều này thìlại phụ thuộc vào độ khó của bài toán nào đó ví như: việc tính tích hai sốnguyên tố lớn � = � × � Dễ dàng nhân hai số nguyên tố lớn , � � để thuđược tích � của chúng, nhưng bài toán sẽ là khó nếu cho giá trị tích � và yêucầu xác định các thừa số nguyên tố
có thể đảm bảo việc ứng dụng được các thuật toán mật mã
Do đó việc xây dựng giao thức trao đổi khóa an toàn có tính cấp thiết trong điều kiện hiện nay.
2 Mục đích nghiên cứu
Nghiên cứu tổng quan các cơ sở lý thuyết về các giao thức trao đổikhóa, về chữ ký số và cơ sơ toán học của các bài toán khó giải để xây dựnglược đồ chữ ký số dựa trên hai bài toán khó nhằm phát triển các giao thức traođổi khóa an toàn có xác thực sử dụng lược đồ chữ ký số dựa trên hai bài toánkhó giải
Trang 17Đồng thời nghiên cứu các vấn đề liên quan đến trao đổi khóa nhóm, đề xuấtgiao thức trao đổi khóa nhóm mới.
3 Đối tượng nghiên cứu
Đối tượng nghiên cứu là bài toán trao đổi khóa, giao thức trao đổi khóa
an toàn, giao thức trao đổi khóa nhóm Các khái niệm cơ sở toán học, cáclược đồ chữ ký số RSA, Rabin, Schnorr, Các giao thức ký và mã hóa đồngthời, các mô hình mã hóa chối từ
4 Phương pháp nghiên cứu
- Nghiên cứu lý thuyết: Phân tích, tổng hợp các kết quả nghiên cứu liên
quan đến các giao thức trao đổi khóa, sử dụng các lý thuyết về đại số trừutượng, bài toán logarithm rời rạc, các phương pháp thiết kế, phát triển giaothức thiết lập khóa an toàn dựa trên giao thức trao đổi khóa Diffie–Hellman,
từ đó đề xuất một số giao thức trao đổi khóa an toàn mới có tính ứng dụngcao Chứng minh tính đúng đắn, sử dụng lý thuyết về độ phức tạp thuật toán,đánh giá độ an toàn và thời gian hoàn thành giao thức trao đổi khóa (theo lýthuyết) của các giao thức đề xuất
- Thực nghiệm: xây dựng các module thử nghiệm kiểm tra tính đúng
đắn của các giao thức đã đề xuất
5 Bố cục của luận án
Ngoài phần mở đầu giới thiệu về tính cấp thiết, mục đích, phươngpháp, đối tượng, phạm vi nghiên cứu của luận án, các đóng góp mới, ý nghĩakhoa học và thực tiễn của luận án và phần kết luận, luận án được chia thành 4chương, bố cục như sau:
Trình bày tổng quan bài toán trao đổi khóa, một số khái niệm, phươngpháp đánh giá, tiêu chuẩn an toàn của một giao thức trao đổi khóa Giới thiệuchi tiết giao thức trao đổi khóa Diffie–Hellman; phân tích giao thức trao đổi
Trang 18khóa an toàn, ưu nhược điểm của một số giao thức trao đổi khóa an toàn đãcông bố Trình bày các khái niệm về trao đổi khóa nhóm, các đặc điểm và yêucầu đối với một giao thức trao đổi khóa nhóm Trình bày các vấn đề cơ sởtoán học của các bài toán khó giải, tổng quan về lược đồ chữ ký số và điểm lạinhững vấn đề xung quanh các lược đồ chữ ký số RSA, DSA, Rabin, Schnorr.Đồng thời cũng đã trình bày các thảo luận liên quan đến bảo mật, sự thực thi,các phương pháp tấn công,
Chương 2 PHÁT TRIỂN GIAO THỨC TRAO ĐỔI KHÓA CÓ XÁC
THỰC DỰA TRÊN HAI BÀI TOÁN KHÓ
Tập trung nghiên cứu và phân tích ưu nhược điểm của các lược đồ chữ
ký số dựa trên hai bài toán khó đã được công bố, từ đó làm cơ sở đề xuất lược
đồ chữ ký số mới dựa trên hai bài toán khó, giải quyết các vấn đề còn tồn
tại Phân tích khả năng bảo mật và hiệu quả của lược đồ mới đề xuất Trên cơ
sở đó phát triển giao thức trao đổi khóa an toàn có xác thực tích hợp chữ ký
số dựa trên hai bài toán khó Phân tích đánh giá tính bảo mật và hiệu năng
của thuật toán
Chương 3 PHÁT TRIỂN GIAO THỨC KÝ VÀ MÃ HÓA ĐỒNG
THỜI DỰA TRÊN HAI BÀI TOÁN KHÓ
Phân tích mô hình ký rồi mã hóa truyền thống, chỉ ra ưu điểm của môhình ký và mã hóa đồng thời so với mô hình truyền thống Phân tích một sốgiao thức ký và mã hóa đồng thời đã công bố, các hạn chế còn tồn tại của các
giao thức này Dựa trên cơ sở lược đồ chữ ký số mới ở chương 2, đề xuất giao
thức ký và mã hóa đồng thời dựa trên hai bài toán khó (DH–MM–SC) và giao thức ký và mã hóa đồng thời có thể chối từ dựa trên hai bài toán khó (DH–MM–DSC) nhằm nâng cao tính bảo mật và cung cấp khả năng chống
tấn công cưỡng bức chủ động Đây là giao thức ký và mã hóa đồng thời đầutiên có khả năng chối từ
Trang 19Chương 4 PHÁT TRIỂN GIAO THỨC TRAO ĐỔI KHÓA NHÓM
Nghiên cứu các vấn đề liên quan đến trao đổi khóa nhóm thông quaphân tích giao thức GDH nguyên thủy và một số phát triển của giao thức này
để từ đó đề xuất xây dựng giao thức cải tiến trong trường hợp trao đổi khóa
nhóm nhằm tránh lộ khóa cặp, dễ dàng thay đổi khóa và giảm khối lượng tính
toán
6 Ý nghĩa khoa học và thực tiễn của luận án
Việc cải tiến và phát triển các giao thức trao đổi khóa an toàn luôn làyêu cầu đặt ra của bất kỳ tổ chức hay quốc gia nào Hiện nay, các giao thứctrao đổi khóa an toàn tích hợp chữ ký số đều dựa vào một bài toán khó giảinhư: Bài toán logarithm rời rạc, bài toán phân tích thừa số nguyên tố, bài toánkhai căn bậc 2 ��� � hoặc bài toán logarithm rời rạc trên đường congElliptic Một giả thiết đặt ra là trong tương lai, khi các bài toán khó giải lầnlượt được giải quyết thì các giao thức trao đổi khóa hiện tại sẽ trở thànhkhông an toàn Do đó, cần phát triển các giao thức mới dựa trên kết hợp cácbài toán khó giải để tăng tính an toàn cho giao thức trao đổi khóa
Đóng góp của luận án chính là việc xây dựng các giao thức trao đổikhóa an toàn tích hợp chữ ký số dựa trên kết hợp các bài toán khó giải để tăngtính an toàn cho giao thức trao đổi khóa đó Đồng thời, luận án cũng xem xét
đề xuất giao thức trao đổi khóa theo nhóm nhằm tránh lộ khóa cặp, dễ dàngthay đổi khóa và giảm số lượng tính toán
Trang 20Chương I: TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU
Nội dung chính của chương này: Giới thiệu tổng quan về bài toán traođổi khóa, với cơ sở là giao thức trao đổi khóa Diffie–Hellman; trình bày một
số khái niệm, vai trò của trao đổi khóa; trình bày các tiêu chuẩn an toàn củagiao thức trao đổi khóa Ngoài ra nội dung của chương cũng đề cập tới: Cácgiao thức trao đổi khóa an toàn, phân tích xu hướng nghiên cứu, phát triển củacác giao thức trao đổi khóa có xác thực, trình bày ưu nhược điểm của một sốgiao thức trao đổi khóa kết hợp với lược đồ chữ ký số đã công bố có liênquan; trình bày bài toán trao đổi khóa nhóm và các phân đoạn thỏa thuận khóanhóm Chương này cũng trình bày cơ sở toán học của của các lược đồ chữ ký
số là bài toán logarithm rời rạc (DLP) và bài toán phân tích thừa số nguyên tố(IFP); phân tích độ an toàn và các hình thức tấn công đối với hai bài toán này;định nghĩa chữ ký số, các yêu cầu an toàn đối với một lược đồ chữ ký số vàtrình bày một số phát triển của lược đồ chữ ký số
1.1 Tổng quan về bài toán trao đổi khóa
Giao thức trao đổi khóa đầu tiên được đưa ra bởi W Diffie và M.Hellman vào năm 1976 [67], nó được gọi là giao thức Diffie–Hellman nguyênthủy Giao thức được thực hiện như sau:
Hai đối tượng Alice (A) và Bob (B) thỏa thuận lựa chọn một nhóm hữuhạn �∗ và một phần tử � ∈ �∗, với � là phần tử sinh ra một nhóm có bậc
Trang 21- A phát sinh một giá trị ngẫu nhiên �� (1 ≤ �� ≤ � − 1), tính
�� = ��� ��� � và gửi giá trị này cho B;
- B phát sinh một giá trị ngẫu nhiên �� (1 ≤ �� ≤ � − 1), tính
�� = ��� ��� � và gửi giá trị này cho A;
- Lựa chọn � là phần tử sinh của nhóm �∗
- A và B sẽ xóa các giá trị �� và �� khi kết thúc hoạt động của giao thức.Khi thực hiện điều này chúng sẽ có đặc tính bảo mật về phía trước
Sau khi W Diffie và M Hellman đề xuất sử dụng các hệ mật khóa côngkhai để trao đổi khóa, các giao thức trao đổi khóa khác đã được phát triểntương tự, trong đó có thể kể đến giao thức PGP (Pretty Good PrivacyEncryption) được tạo ra bởi Philip Zimmermann vào năm 1991 [79] Tronggiao thức này, khóa được mã hóa bằng cách sử dụng một hệ mật khóa côngkhai (sử dụng khóa công khai của bên nhận) Vì vậy, chỉ có bên nhận có thểgiải mã được khóa đã được mã Nhưng bằng cách sử dụng một giao thức nhưvậy đòi hỏi không chỉ quá trình mã hóa – giải mã khác mà còn thêm chứngthực của khóa công khai
Khi các hệ mật mới hơn được phát triển, giao thức DHKE thay đổi dựatrên các bài toán khác nhau Đó là DHKE dựa trên đường cong elliptic(Elliptic Curve Diffie–Hellman Key Exchange – ECDHKE), các giao thứcMQV (Menezes–Qu–Vanstone Protocols), giao thức ECMQV (Elliptic CurveMQV), HMQV (Hashed MQV), FHMQV (Fully Hashed MQV),…
�
�
Trang 22Một số phát triển dựa trên giao thức MQV:
Năm 1995, nhóm tác giả A J Menezes, Minghua Qu và S A Vanstone(MQV) [1] đã trình bày phương thức tấn công đối với một số giao thức traođổi khóa đã phát triển trước đó như: giao thức một lần truyền của Nyberg–Rueppel; giao thức hai lần truyền của Goss và Yacobi Các giao thức này đềukhông cung cấp tính chất an toàn là xác thực khóa ẩn MQV cũng đề xuất giaothức của nhóm và chứng minh được giao thức đề xuất cung cấp tính chất antoàn là xác thực khóa ẩn Giao thức này được trình bày và chứng minh chi tiếttrong tài liệu [1] Giao thức MQV được coi là giao thức trao đổi khóa chuẩn
và được tích hợp trong các khóa công khai tiêu chuẩn IEEE P1363 [68]
Năm 2005, khi nghiên cứu tính an toàn của giao thức MQV trên môhình trao đổi khóa Canetti–Krawczyk, Hugo Krawczyk đã chứng minh rằnggiao thức MQV không an toàn với tấn công khóa biết Để khắc phục nhượcđiểm trên Krawczyk đã đề xuất giao thức HMQV là phát triển của giao thứcMQV [23] Với việc sử dụng hàm băm (hash function), Krawczyk đã chứngminh giao thức HMQV có độ phức tạp tính toán tương đương với giao thứcMQV nhưng có độ an toàn cao hơn (khả năng chống lại tấn công khóa biết).Một biến thể mới của giao thức HMQV được P S Augustin và cộng sự giớithiệu năm 2009 là FHMQV (Fully Hashed MQV) và FHMQV–C (C viết tắtcho Key Confirmation) được thể hiện chi tiết trong [50]
Một hướng phát triển khác của giao thức MQV được Tseng đề xuất vàonăm 2002 [74] là không sử dụng hàm băm, thay vào đó sử dụng �2 khóaphiên trong một phiên để chống lại tấn công khóa biết Năm 2013, Hwang vàcộng sự phát triển giao thức hiệu quả tạo lập �2 + � khóa trong một phiên[31] Năm 2014, nhóm nghiên cứu của Li-Chin Hwang, Đại học TaiChung,tiếp tục mở rộng giao thức của Tseng [73] bằng cách sinh �2 + 1 khóa phiên
và tất cả các khóa phiên đều được sử dụng để chống lại tấn công khóa biết[29]
Trang 231.1.1 Khái niệm giao thức trao đổi khóa
Trao đổi khóa (key exchange): Là các phương pháp trao đổi khóa giữa
các thực thể tham gia mã hóa
Giao thức: Là một thuật toán có sự tham gia của nhiều bên, được xác
định chính xác bởi một chuỗi các bước hoạt động của các bên tham gia nhằmđạt được mục tiêu xác định
Giao thức trao đổi khóa (key exchange protocol): Là quá trình thực
hiện mà nhờ đó các bên cùng nhau thiết lập khóa bí mật dùng chung trong quátrình truyền thông trên một kênh công cộng
Xác lập khóa (Key Establishment): Là tiến trình trong đó hai (hoặc
nhiều) đối tượng xác lập một khóa bí mật được chia sẻ Trong thực tế có haikiểu giao thức xác lập khóa: 1) Các giao thức chuyển khóa (Key TransportProtocols), trong đó một khóa được phát sinh bởi một đối tượng và truyền bímật đến đối tượng thứ hai; 2) Các giao thức thỏa thuận khóa (Key AgreementProtocols), trong đó cả hai đối tượng trao đổi các thông tin để xác lập mộtkhóa bí mật được chia sẻ
Ngoài nhiệm vụ thiết lập một giá trị khóa chung cho hai bên, đôi khicác bên còn đòi hỏi giao thức cung cấp tính xác thực, các khả năng xác thực
mà giao thức có thể là:
- Xác thực khóa (key authentication): Là khả năng giao thức cho phép
một bên được bảo đảm rằng ngoại trừ đúng bên đúng với thông tin danh tính
đã xác định trước thì không một ai khác có thể tính được giá trị bí mật Điềunày có nghĩa là nếu A (B) muốn thiết lập, hoặc chuyển cho B (A) khóa bí mậtbằng cách sử dụng một giao thức có khả năng xác thực khóa thì sau khi kếtthúc giao thức A chắc chắn rằng chỉ có B mới có thể thu được giá trị đó Xácthực khóa đôi khi còn được gọi là xác thực khóa ẩn (implicit keyauthentication);
Trang 24- Xác nhận khóa (key confirmation): Là khả năng giao thức cho phép
một bên chắc chắn rằng bên kia đã có giá trị bí mật Nghĩa là sau khi kết thúcgiao thức A chắc chắn rằng B đã thu được giá trị bí mật �;
- Xác thực khóa hiện (explicit key authentication): Giao thức có khả
năng xác thực khóa và xác nhận khóa được gọi là giao thức xác thực khóahiện;
- Xác thực thực thể (entity authentication): Là quá trình cho phép một
bên được đảm bảo về danh tính của bên kia, và thực sự bên kia đã tham giavào hoạt động của giao thức
Các giao thức có thể chỉ cung cấp xác thực thực thể một chiều (tức làchỉ cho phép xác thực theo một chiều hoặc là A về B, hoặc là B về A)
Các giao thức có thể bị tấn công dưới dạng các hình thức sau:
- Tấn công thụ động (còn gọi là tấn công bị động – passive attack):
Quan sát, nghe trộm quá trình thực hiện giao thức nhưng không làm ảnhhưởng tới giao thức và không thay đổi được thông tin giao dịch;
- Tấn công chủ động (active attack): Tìm cách thay đổi giao thức (theo
hướng có lợi cho mình), thay đổi thông tin, xóa thông tin thực, tạo thông tingiả, tham gia vào giao dịch
1.1.2 Các tính chất an toàn của giao thức trao đổi khóa
Phần này mô tả một số tính chất cần có của một giao thức trao đổi khóa([2], [3], [5], [9], [68])
Tính chất 1.1 Độ an toàn khóa đã biết (Known–Key Security – KKS).
Mỗi một phiên trao đổi khóa giữa hai thực thể A và B, khóa phiên đượctạo ra phải là một khóa bí mật duy nhất chỉ được biết bởi A và B, ngay cả khingười tấn công đã có nghiên cứu (kiến thức) về một vài khóa phiên khác
Trang 25Tính chất 1.2 Tính an toàn đầy đủ về phía trước (Perfect Forward
Secrecy – PFS).
Tính an toàn không đầy đủ về phía trước (Half Forward Secrecy): Nếukhóa bí mật dài hạn của một bên tham gia thỏa thuận khóa bị lộ thì các khóaphiên được tạo ra trước đó cũng không bị ảnh hưởng
Tính an toàn đầy đủ về phía trước (Perfect Forward Secrecy hoặc FullForward Secrecy): Nếu khóa bí mật dài hạn của cả hai bên tham gia thỏathuận khóa bị lộ thì các khóa phiên được tạo ra trước đó vẫn không bị ảnhhưởng
Tính chất 1.3 Tính chất khóa độc lập.
Một giao thức trao đổi khóa được gọi là thỏa mãn tính chất khóa độclập nếu một khóa phiên bị lộ thì người tấn công cũng không thể tính được cáckhóa phiên khác
Tính chất 1.4 Khả năng có thể chối từ hợp lý (Plausible deniablity).
Đây là tính năng cho phép một thực thể có thể chối từ “hợp lý” sự tồntại của một kết nối với một đối tác truyền thông Tính chất này là cần thiết ởtầng IP bởi vì nó cho phép nhiều dịch vụ bí mật có thể hoạt động được, giốngnhư kiểu nặc danh (Anonymity) Tính chất nặc danh có thể có ích trongtrường hợp người khởi tạo hoặc người phúc đáp là một đầu cuối hoạt độngbên trong một tường lửa (Firewall) Đặc điểm này có được nếu như chúng takhông ký lên định danh của mình hoặc nếu gửi các chứng chỉ số trong một
thông báo đã được mã hóa Chối từ hợp lý là một đặc điểm được đưa ra trong
quá trình xây dựng giao thức SIGMA của Krawczyk [24] Giao thức STS
(Station–to–Station) [8] gửi các thông báo kèm chứng chỉ để ở dạng rõ nên
không có tính chất này
Tính chất 1.5 Khả năng bảo vệ định danh (Identity protection).
Giao thức trao đổi khóa yêu cầu phải thiết kế để có tính chất xác thựchai chiều đủ tin cậy Để thực hiện được điều này, định danh của các thực thểtham gia trao đổi khóa phải được truyền trên mạng Một vài ứng dụng cầnchống lại
Trang 26việc để lộ thông tin định danh trên mạng Việc mã hóa định danh người gửi làchưa đủ, nó yêu cầu người gửi phải chứng minh định danh mà mình sở hữutrước khi bản mã định danh được gửi đi Giao thức SIGMA là một trongnhững giao thức được thiết kế để hỗ trợ khả năng bảo vệ định danh Giao thứcSTS và giao thức trong ISO 11770-3 không có tính chất này.
Tính chất 1.6 Khả năng điều khiển khóa (Key control).
Điều khiển khóa là một tính chất mà không bên nào có thể điều khiển khóa phiên theo một giá trị được chọn trước
Tính chất 1.7 An toàn chống tấn công kẻ đứng giữa (Man-in-the-
middle – MITM).
Đây là một kiểu nghe trộm chủ động, người tấn công chặn bắt cácthông tin giữa hai thực thể A và B, làm cho họ tin rằng họ đang trực tiếp traođổi với nhau trên một kết nối riêng Trong khi thực tế toàn bộ các kết nối giữa
A và B đã bị điều khiển bởi người tấn công Tấn công kẻ đứng giữa chỉ thànhcông khi người tấn công giả mạo được A hoặc B Để chống tấn công này, hầuhết các giao thức trao đổi khóa phải sử dụng tính chất xác thực hai chiều(dùng PKI chẳng hạn)
Tính chất 1.8 An toàn chống tấn công SSR (session-state reveal)
Một giao thức được gọi là an toàn với tấn công SSR nếu người tấn công
có được các thành phần ngẫu nhiên trong quá trình trao đổi khóa thì cũngkhông thể tính được khóa chia sẻ bí mật
Tính chất 1.9 An toàn chống tấn công cưỡng bức chủ/thụ động
Theo cách tấn công thụ động, người tấn công không thể tính được cácgiá trị trao đổi dựa trên các thông tin nghe lén được trong quá trình trao đổi
Theo cách tấn công chủ động, người tấn công có thể đóng vai người gửihoặc người nhận Nếu người tấn công trong vai trò người gửi tin, họ có thểxác định khi nào thì bên nhận là trung thực và khi nào thì giả dối Sau đó, họ
sẽ gửi
Trang 27hai thông điệp đến bên nhận (một bản thật và một bản giả) Sau khi truyền,người tấn công sẽ hỏi bên nhận mở thông điệp và có thể xác định được ngườigửi là trung thực hay không dựa trên phản hồi.
Tính chất 1.10 An toàn chống tấn công không biết khóa chia sẻ
(Unkown key–share attack – UKS).
Khi B tin tưởng một khóa được chia sẻ với thực thể C nào đó khôngphải A, thì A lại tin tưởng chắc chắn rằng khóa đó được chia sẻ với B Việcthêm định danh của người kiểm tra chữ ký không phải là cách duy nhất đểchống lại tấn công này Chẳng hạn, sử dụng chữ ký xác thực có chỉ định(Designated verifier signature) có thể nhận được phương pháp phòng chốngtốt hơn mà không cần thêm vào định danh của người kiểm tra chữ ký
Tính chất 1.11 An toàn chống tấn công từ chối dịch vụ (Denial of
Service – DoS).
Tấn công từ chối dịch vụ là một kiểu tấn công hay gặp nhất hiện nay vàhầu như chưa có cách phòng chống triệt để Kiểu tấn công thông dụng nhất làgửi rất nhiều yêu cầu phục vụ đến máy chủ và làm cho máy chủ không còn tàinguyên cũng như năng lực tính toán để xử lý dẫn đến treo hệ thống
Tính chất 1.12 An toàn chống tấn công lặp lại (Replay attack).
Tấn công lặp là một kiểu tấn công mạng mà theo đó một gói tin dữ liệuhợp lệ sẽ được người tấn công chặn bắt, giữ chậm và gửi trả lại cho người gửi.Giả sử A muốn chứng minh danh tính của mình với B B yêu cầu mật khẩucủa A, A sẽ gửi thông tin về mật khẩu (giá trị băm của mật khẩu chẳng hạn)cho B, trong khi đó người tấn công sẽ chặn bắt và giữ lại thông tin này Saukhi trao đổi giữa A và B kết thúc, người tấn công sẽ giả mạo A để kết nối đến
B, khi được hỏi mật khẩu để xác nhận định danh thì người tấn công sẽ gửithông tin về mật khẩu của A (cái mà nó thu giữ được trong phiên làm việc
trước).
Trang 28Có một số cách để chống tấn công này, thông dụng nhất là sử dụng mộtgiá trị ngẫu nhiên làm định danh phiên (session ID) hoặc sử dụng nhãn thờigian (timestamp).
Tính chất 1.13 An toàn chống tấn công phản xạ (Reflextion attack).
Đây là một phương pháp tấn công hệ thống xác thực kiểu “thử thách –
trả lời” (Challenge – response) mà được sử dụng như nhau cho cả hai phía
Kiểu tấn công này được mô tả tổng quát như sau:
- Người tấn công khởi tạo một kết nối đến đích A
- Đích A cố gắng xác thực người tấn công bằng việc gửi cho nó một bản tin “thử thách” (Challenge message)
- Người tấn công tạo ra một kết nối khác đến đích A và gửi thử thách
mà nó nhận được như là thử thách của người tấn công
- Đích A trả lời lại thử thách mà người tấn công gửi đến
- Người tấn công gửi trả lời vừa nhận được tới A trên kết nối ban đầu
Có một số cách để giải quyết vấn đề này đó là:
- Người phúc đáp gửi định danh của mình kèm trong thông báo trả lời,khi đó nếu nhận được một trả lời mà có định danh của mình thì người khởi tạo
có thể chấm dứt kết nối đó
- Yêu cầu khóa hoặc giao thức phải khác nhau giữa hai phía
Tính chất 1.14 An toàn chống giả mạo khóa thỏa thuận (Key
Compromise Impersonation – KCI).
Một giao thức thỏa thuận khóa được gọi là an toàn chống giả mạo khóathỏa thuận nếu sự thỏa hiệp khóa bí mật dài hạn của một thực thể tin cậykhông cho phép người tấn công thiết lập một khóa phiên với thực thể nàybằng cách giả mạo như một thực thể tin cậy khác
Trang 29Tính chất 1.15 Xác thực khóa ẩn (Implicit Key Authentication – IKA).
Giao thức thỏa thuận khóa được gọi là có tính xác thực khóa ẩn của B
đối với A nếu A chắc chắn rằng không có đối tượng nào khác ngoài B có khảnăng biết giá trị của khóa bí mật chia sẻ
Tính chất 1.16 Xác nhận khóa hiện (Explicit key Confirmation – EKC).
Giao thức thỏa thuận khóa được gọi là đảm bảo tính xác nhận khóahiện của B đối với A nếu A chắc chắn rằng B thực sự đã tính được khóa chiasẻ
Tính chất 1.17 Xác nhận khóa ẩn (Implicit Key Confirmation – IKC).
Giao thức đảm bảo xác nhận khóa ẩn nếu A đảm bảo rằng B có thể tínhđược khóa chia sẻ
Tính chất 1.18 Xác thực khóa hiện (Explicit key Authentication – EKA).
Một giao thức thỏa thuận khóa được gọi là có tính xác thực khóa hiệncủa B đối với A nếu đồng thời có hai tính chất xác thực khóa ẩn và xác nhậnkhóa hiện của B đối với A
Tính chất 1.19 Xác thực và xác nhận khóa hai chiều.
Một giao thức thỏa thuận khóa đảm bảo tính xác thực khóa ẩn cho cảhai đối tượng tham gia được gọi là giao thức thỏa thuận khóa được xác thực
Trong khi một giao thức thỏa thuận khóa đảm bảo tính xác thực khóahiện cho cả hai đối tượng tham gia được gọi là giao thức thỏa thuận khóađược xác thực cùng xác nhận khóa (Authenticated key agreement with keyconfirmation – AKAKC)
1.1.3 Giao thức trao đổi khóa an toàn
Giao thức trao đổi khóa Diffie–Hellman không đảm bảo xác thực giữahai bên của giao thức [60] Dựa trên điều này, đã có nhiều giao thức được đềxuất nhằm cung cấp khả năng xác thực cho các bên tham gia trao đổi khóa
Hiện nay, việc phát triển của giao thức trao đổi khóa an toàn theo hai xuhướng chính là:
Trang 30- Tích hợp chữ ký số, đây là xu hướng Luận án lựa chọn để nghiên cứu;
- Chia sẻ mật khẩu (dùng trong các môi trường Client – Server).
Lược đồ chữ ký số (Digital Signature Scheme – DSS) [69] cung cấpkhả năng xác thực nguồn gốc và tính toàn vẹn của văn bản được ký Điều nàyngăn cản việc sử dụng trực tiếp DSS trong việc trao đổi khóa bí mật (sử dụngtrong các hệ mật khóa đối xứng) Mặt khác, giao thức trao đổi khóa công khaiDiffie– Hellman (DHKE) [67] không đảm bảo xác thực giữa hai bên tham giagiao thức Từ thực tế này, đã xuất hiện hướng nghiên cứu mới nhằm phát triểncác giao thức trao đổi khóa dựa trên sự tích hợp giao thức DHKE và lược đồchữ ký số Giao thức được đề xuất theo hướng này kết hợp được các ưu điểmcủa DHKE và lược đồ chữ ký số khi triển khai ứng dụng trong thực tiễn
Năm 1993, Arazi là người đầu tiên phát triển giao thức trao đổi khóatheo hướng tích hợp giao thức DHKE với lược đồ chữ ký số DSA [7] Giao
thức này dùng các khóa công khai chỉ sử dụng một lần (one–time), còn gọi là khóa công khai ngắn hạn (ephemeral) cho giao thức DHKE Ngoài ra, các
khóa công khai ngắn hạn được ký bằng cách sử dụng lược đồ chữ ký số DSA
để xác thực các khóa này Tuy nhiên, nhiều nghiên cứu sau đó [10], [30], [35]
đã chỉ ra những hạn chế của giao thức này
Năm 1994, Nyberg và Rueppel [30] chỉ ra rằng giao thức của Arazikhông có thuộc tính về sự an toàn dựa trên khóa đã biết
Năm 1995, L Harn và các cộng sự đề xuất sửa đổi giao thức trao đổikhóa của Arazi [33] Thay vì phân phối một khóa công khai đơn lẻ trong mỗiphiên giao tiếp, nhóm L Harn đề xuất phân phối nhiều khóa công khai trong
mỗi phiên [34] Giao thức này cho phép trao đổi n cặp khóa công khai giữa
hai bên tham gia giao thức và xác lập được (�2 − 1) khóa phiên bí mật Giao
thức của Harn cung cấp các tính chất an toàn: An toàn với tấn công biết khóa,
tấn công không biết khóa chia sẻ và tấn công lặp khóa.
Trang 31Năm 2005, Phan đã chỉ ra rằng giao thức của Harn không thể cung cấp
hai tính chất về chuẩn bảo mật mà các giao thức cần có đó là an toàn phía
trước (forward secrecy) và làm mới khóa (key freshness) [52] Phan đưa ra cải
tiến của mình trên giao thức của Harn để giao thức có thể cung cấp hai tính
chất nói trên (an toàn phía trước và làm mới khóa) Tuy nhiên trong giao thức trao đổi khóa Phan, tồn tại một mối quan hệ hiện (explicit relation) giữa hai
khóa phiên được thỏa thuận giữa hai bên, ��� và ��� Mối quan hệ này cóthể gây ra một
số lỗ hổng trong tương lai Mặc dù không có cuộc tấn công nào tồn tại trên giaothức ngay bây giờ nhưng các giao thức sẽ an toàn hơn nếu không có mối quan
hệ rõ ràng giữa hai khóa phiên được thỏa thuận
Năm 2010, hai tác giả Liu J và Li J [38] đã đề xuất một cải tiến tốt
hơn, an toàn hơn bằng cách khắc phục nhược điểm mối quan hệ hiện trong
giao thức trao đổi khóa Phan [52]
Cải thiện của giao thức này đó là có thêm hai số nguyên ngẫu nhiêntạm thời so với giao thức trao đổi khóa Phan (trong giao thức của Phan thìmỗi bên tham gia giao thức chọn một số nguyên ngẫu nhiên còn trong giaothức Liu & Li mỗi bên chọn hai số nguyên ngẫu nhiên) Giao thức này vẫncung cấp được tính an toàn của giao thức Phan Các khóa phiên trong giaothức cải tiến này được kết hợp bởi các số nguyên ngẫu nhiên khác nhau chonên không có bất kỳ mối quan hệ hiện nào giữa ��� và ��� Do đó, giaothức cải tiến này khắc phục
được nhược điểm mối quan hệ hiện giữa hai khóa phiên được thỏa thuận giữahai bên Do đó nó an toàn hơn so với giao thức trao đổi khóa Phan
Độ phức tạp tính toán của giao thức này tương đương với giao thức traođổi khóa của Phan Mặc dù thêm hai số nguyên ngẫu nhiên tạm thời làm cho
độ phức tạp không gian của cải tiến này nở ra đôi chút nhưng nó làm cho giaothức an toàn hơn
Trang 32Tuy nhiên, giao thức của Liu J và Li J không cung cấp khả năngchống lại tấn công lộ khóa phiên.
1.1.4 Bài toán trao đổi khóa nhóm
Sự phát triển đa dạng của các nhóm truyền thông đã thúc đẩy sự pháttriển phổ biến của những ứng dụng định hướng nhóm và các giao thức nhóm.Nhóm truyền thông xảy ra ở nhiều thiết lập khác nhau từ mạng phát tán(multicasting) tới các loại hội nghị, các nhóm cộng đồng mạng, các tổ chức vàcác ứng dụng phần mềm nhóm khác Vì vậy quan tâm đến môi trường truyềnthông nhóm, các dịch vụ bảo vệ là cần thiết để cung cấp bảo mật và toàn vẹnthông tin liên lạc
Trong khi bảo mật trong giao thức ngang hàng (Peer-to-Peer – P2P) làmột lĩnh vực đang phát triển tốt, thì an toàn thông tin liên lạc trong nhóm vẫncòn tương đối hạn chế Bảo mật thông tin nhóm không chỉ là sự dàn rộng racủa trao đổi thông tin giữa hai tổ chức Với sự mở cửa của các mạng ngàynay, thông tin liên lạc giữa các thành viên trong nhóm phải được an toàn, hiệuquả và đồng thời Nhóm thông tin liên lạc an toàn không phải là một phần mởrộng đơn giản của giao tiếp hai bên an toàn Truyền thông hai bên có thể đượcxem như một hiện tượng riêng biệt: nó bắt đầu, kéo dài trong một thời gian vàkết thúc Thay vào đó, nhóm truyền thông bắt đầu, thay đổi thành viên trongnhóm (có thành viên mới vào nhóm và cũng có thành viên ra khỏi nhóm) và
có thể không được xác định cuối cùng Sự biến động kết hợp với sự giao dịch
đa chiều đã dẫn đến những đòi hỏi cao với các giao thức trao đổi khóa nhóm
1.1.4.1 Đặc điểm của trao đổi khóa theo nhóm
Trong việc xây dựng giao thức thỏa thuận khóa nhóm có một số đặcđiểm mà chúng ta cần lưu ý, để có thể có được một giao thức tốt, đảm bảo cả
về mặt hiệu quả thực hiện cũng như độ bảo mật
Trang 33- Hiệu quả giao thức được quan tâm nhiều hơn do số lượng người thamgia và khoảng cách giữa họ.
- Do nhóm là động nên các thành viên có thể tham gia hay rời khỏinhóm bất kỳ lúc nào Như vậy giao thức phải có những dự phòng và xử lý đểđạt được hiệu quả cao nhất
- Khả năng lộ khóa do những yếu tố phi kỹ thuật sẽ cao hơn vì vậy cần
có cách thức để nhanh chóng thay đổi khóa nhưng cũng phải tính đến tínhhiệu quả của thuật toán
Những điều trên làm phức tạp dịch vụ bảo mật, trong đó loại nhóm phổbiến nhưng đòi hỏi giao thức phức tạp là nhóm ngang hàng động (DynamicPeer Group – DPGs) Trái ngược với phần lớn nhóm phát tán (ví dụ như dịch
vụ truyền hình), DPGs có đặc điểm là tương đối nhỏ về kích thước, DPGsthường giả định nhiều–nhiều mô hình truyền thông chứ không phải là một–nhiều thường thấy ở các nhóm phân cấp
Phần tiếp theo tập trung vào thảo luận các phân đoạn của thỏa thuậnkhóa đó là khởi tạo khóa và các yêu cầu hỗ trợ sự thay đổi của nhóm, địnhnghĩa một lớp các giao thức mà xuất phát từ giao thức trao đổi khóa DH vàchứng minh bảo mật của tất cả các giao thức trong lớp này chống lại tấn côngthụ động
1.1.4.2 Các phân đoạn trao đổi khóa
Một khía cạnh quan trọng của nhóm là các hoạt động của nhóm pháttriển theo thời gian, được phản ánh trong một tập các dịch vụ trao đổi khóa Ởđây, ta sẽ phân biệt giữa khởi tạo khóa (IKA), một giai đoạn hình thành nhóm,
và hoạt động phụ trợ trao đổi khóa (AKA) [44] AKA bao gồm tất cả các hoạtđộng thay đổi thành viên của nhóm, như thêm hoặc bớt thành viên
Khởi tạo khóa (IKA):
IKA diễn ra tại thời điểm ban đầu hình thành khóa nhóm Trong giaiđoạn này các thành viên trong nhóm sẽ thực hiện trao đổi các thành phần của
Trang 34khóa mà mình giữ để hình thành khóa nhóm Một mặt, giai đoạn này cần giảmthiểu lượng tính toán và giao dịch Mặt khác, nó lại phải đảm bảo khả năngđáp ứng hiệu quả các yêu cầu của giai đoạn AKA.
Trong bối cảnh này, bảo mật khóa cặp DH trình bày ở trên có đượckhóa chính chống lại tấn công thụ động Tương tự với khóa nhóm, sẽ không
có khả năng phục hồi thông tin của khóa nhóm bằng cách nghe trộm Đươngnhiên, IKA yêu cầu liên lạc với mọi thành viên trong nhóm để có được cácphần hình thành khóa nhóm Do đó, nó có thể cần thêm các dịch vụ IKA bảomật khác như kiểm soát truy cập và chống chối từ
Các hoạt động bổ trợ trao đổi khóa (AKA):
Như đã đề cập ở trên, thỏa thuận khóa nhóm ban đầu chỉ là một phầntrong các giao thức trao đổi khóa nhóm Phần còn lại cũng rất quan trọng đó
là giải quyết các vấn đề trong nhóm động Nó bao gồm rất nhiều các trườnghợp, sau đây xin liệt kê những trường hợp quan trọng và có ý nghĩa thực tếnhất:
- Thêm một thành viên vào nhóm, nhóm sẽ tính khóa mới Việc trao đổi
để tính khóa mới phải giải quyết bài toán đảm bảo ít giao dịch nhất và không
để lộ khóa cũ;
- Loại một thành viên ra khỏi nhóm;
- Hợp hai hoặc nhiều nhóm để hình thành nhóm mới;
- Chia nhóm thành hai hay nhiều nhóm con;
- Thay đổi khóa mới khi khóa cũ bị lộ;
Một tính chất bảo mật rất quan trọng đối với tất cả các hoạt động AKA
là tính độc lập của khóa Nó bao gồm hai yêu cầu sau đây:
- Các thành viên mới không thể tìm ra các khóa đã sử dụng của nhóm
cũ Nói cách khác, một thành viên không được phép có bất cứ thông tin vềnhững khóa đã được sử dụng trước khi gia nhập nhóm;
Trang 35- Các khóa mới phải được giữ bí mật với các thành viên không còntrong nhóm, ví dụ như các thành viên đã bị loại khỏi nhóm.
1.2 Tổng quan về lược đồ chữ ký sô
Chữ ký số là một lược đồ toán học sử dụng để kiểm tra tính xác thực vàtoàn vẹn của một bản tin, phần mềm hay một văn bản số
Chữ ký số là phiên bản số của chữ ký viết tay hay tem bảo đảm nhưngcung cấp nhiều khả năng bảo mật hơn, tập trung vào việc giải quyết vấn đềgiả mạo chữ ký và mạo danh người gửi Chữ ký số có thể đảm bảo nguồn gốc,định danh và hiện trạng của một văn bản điện tử, giao dịch, cũng như đảmbảo việc xác thực người gửi Năm 1976, Whitfield Diffie và Martin Hellmanlần đầu tiên mô tả về một lược đồ chữ ký số, mặc dù họ chỉ phỏng đoán rằngnhững lược đồ này tồn tại dựa trên những hàm toán học một chiều [67] Sau
đó, năm 1978, Ronald Rivest, Adi Shamir, Len Adleman đề xuất thuật toánRSA và sau đó được sử dụng như một lược đồ chữ ký số cơ sở [57] Gói phầnmềm thương mại đầu tiên sử dụng chữ ký số là Lotus Note 1.0, phát hànhnăm 1989, sử dụng chữ ký số RSA
Sau RSA, nhiều lược đồ chữ ký số khác đã được đề xuất Sớm nhất cóthể kể đến chữ ký số Lamport [36], chữ ký số Merkle [54] (thường được biếtđến với cái tên “cây Merkle” hay đơn giản là “cây băm”), chữ ký số Rabin
[43].Năm 1984, Shafi Goldwasser, Silvio Micali, Ronald Rivest lần đầu tiênđưa các yêu cầu về tính bảo mật của một lược đồ chữ ký số Các tác giả này
đã định nghĩa một cây phân cấp các mô hình tấn công đối với các lược đồ chữ
ký số, đồng thời đề xuất lược đồ chữ ký số GMR, lược đồ đầu tiên có khảnăng chống tấn công lựa chọn bản rõ [60]
Tất cả các lược đồ chữ ký số đều được phát triển dựa trên các bài toánkhó giải, như bài toán logarithm rời rạc (DLP), bài toán phân tích thừa sốnguyên tố (IFP), bài toán logarithm rời rạc trên đường cong elliptic(ECDLP),
Trang 361.2.1 Cơ sở toán học
1.2.1.1 Bài toán logarithm rời rạc
Phát biểu bài toán: [2] Cho một số nguyên tố �, gọi � ∈ �� là phần tử sinh (generator) và � ∈ �∗ Ta cần xác định một số nguyên dương � ∈ �∗
cho: �� ≡ � ��� �
Trên thực tế bài toán logarithm rời rạc thuộc nhóm bài toán không thểgiải trong thời gian đa thức (NP), tức là chưa có thuật toán có thời gian đathức nào có thể giải quyết vấn đề này Với � có tối thiểu 150 chữ số và −(�1) có thừa số nguyên tố đủ lớn, phép lũy thừa modulo � có thể coi như hàmmột chiều hay nói cách khác, việc giải bài toán logarithm rời rạc trên �� cóthể coi là bất khả thi [19]
Lược đồ chữ ký số ElGamal [64] được xây dựng dựa trên bài toánlogarithm rời rạc
Các hình thức tấn công trong bài toán logarithm rời rạc:
Như với bài toán phân tích số nguyên, có hai loại thuật toán để giảiquyết bài toán logarithm rời rạc Các thuật toán chuyên dụng cố gắng khaithác các thuộc tính đặc biệt của số nguyên tố � Ngược lại, thời gian thực hiệncủa các thuật toán đa dụng lại chỉ phụ thuộc vào kích thước của giá trị �
Các thuật toán đa dụng nhanh nhất đã được biết đến để giải quyết bàitoán DLP dựa trên một phương pháp gọi là index–calculus Theo phươngpháp này, một cơ sở dữ liệu các số nguyên tố nhỏ và logarithm tương ứng của
nó được xây dựng sẵn, sau đó có thể dễ dàng tìm được logarithm của các phần
tử của một trường bất kỳ Điều này làm gợi nhớ lại phương pháp thừa số cơ
sở (factor base) cho bài toán phân tích một số nguyên lớn Vì nguyên nhânnày mà nếu có những cải tiến trong các thuật toán hoặc IFP hoặc DLP đượctìm thấy, thì sẽ gần như ngay lập tức sau đó có thể mong chờ một cải tiếntương tự sẽ được tìm thấy trong thuật toán còn lại Như với các phương phápphân tích thừa
Trang 37số, các thuật toán index–calculus có thể dễ dàng được thực hiện theo phươngthức song song.
Như trong trường hợp phân tích thừa số, thuật toán tốt nhất hiện tạiđược biết đến cho bài toán DLP đó là sàng trường số [6], [63] Chính xác hơn
nó có cùng thời gian thực hiện tiệm cận với thời gian thực hiện của thuật toánphân tích số nguyên tương ứng Do vậy có thể nói rằng việc tìm logarithm rờirạc trong trường hợp modulo là một số nguyên tố � có độ dài � – bit có độ
khó xấp xỉ bài toán phân tích thừa số một hợp số � có cùng độ dài
Việc nghiên cứu các thuật toán logarithm rời rạc đi sau các nỗ lựctương tự để giải quyết bài toán phân tích các số nguyên lớn Năm 1990, Brian
La Macchia và Adrew Odlyzko đã sử dụng một biến thể khác của phươngpháp index–calculus được gọi là phương pháp số nguyên Gaussian để tínhlogarithm rời rạc với modulo một số nguyên tố có độ dài 191 bit
Năm 1998, Weber và Denny [63] đã công bố giải pháp cho thử tháchMcCurley Diffie–Hellman (McCurley Diffie–Hellman Challenge [41]) baogồm việc giải bài toán logarithm rời rạc với modulo số nguyên tố 129 chữ sốthập phân Số nguyên tố được sử dụng là một dạng đặc biệt, do vậy phươngpháp sàng trường số đã được áp dụng và đã đem lại hiệu quả đặc biệt trongtrường hợp này Các kết quả đã được công bố trong Crypto’98
Các kết quả chỉ ra rằng để có mức độ an toàn cao hơn, các số modulo �được sử dụng trong các hệ mật logarithm rời rạc phải có độ dài 1024 bit hoặclớn hơn
1.2.1.2 Bài toán phân tích thừa số nguyên tố
Phát biểu bài toán: Phân tích một số thành thừa số nguyên tố là biểu
diễn số đó dưới dạng tích của các số nguyên tố [2], [15]
Thực tế với số nguyên � đủ lớn thì việc phân tích � thành thừa sốnguyên tố là vô cùng khó khăn
Trang 38Hiện tại các thuật toán phân tích thừa số nguyên tố có thể giải quyết bàitoán với số nguyên dương có khoảng 130 chữ số thập phân.
Mã hóa RSA được xây dựng trên cơ sở độ khó của bài toán phân tíchthừa số nguyên tố
Các hình thức tấn công trong bài toán phân tích thừa sô nguyên tô:
Về cơ bản có hai dạng thuật toán phân tích thừa số chính là các thuậttoán chuyên dụng và các thuật toán đa dụng Các thuật toán chuyên dụng cốgắng khai thác các thuộc tính đặc biệt của số nguyên � đang được phân tích.Ngược lại, thời gian thực hiện của các thuật toán phân tích đa dụng chỉ phụthuộc vào kích thước của số nguyên �
Một trong những thuật toán phân tích thừa số chuyên dụng mạnh mẽnhất hiện nay đó là phương pháp phân tích thừa số trên đường cong elliptic(ECM) đã được đề xuất vào năm 1985 bởi Hendrik Lenstra Jr Thời gian thựcthi của thuật toán này phụ thuộc vào các thừa số nguyên tố của � và vì vậythuật toán hướng đến việc tìm các thừa số nhỏ đầu tiên Dự án ECMNETđược bắt đầu vào tháng 01/1998 để tìm các thừa số lớn bằng việc sử dụngECM, đã thành công trong việc xác định thừa số của số có 50 chữ số (166 bit)hoặc nhiều hơn Thừa số nguyên tố lớn nhất thực sự đã được tìm thấy bởiECM là thừa số 54 chữ số (180 bit) của số nguyên có chiều dài 127 chữ số(422 bit) Việc tính toán được thực hiện bởi N Lygeros và M Mizony và đãđược công bố vào 26/12/1999
Chỉ trước khi phát triển hệ mật RSA, thuật toán phân tích thừa số đadụng tốt nhất là thuật toán chia liên tiếp, thuật toán này có thể phân tích các sốđến 40 chữ số thập phân (133 bit) Thuật toán này dựa trên ý tưởng sử dụngthừa số cơ sở của các số nguyên tố và tạo một tập các phương trình tuyến tínhliên kết với nhau mà nghiệm cuối cùng của nó dẫn tới việc phân tích ra cácthừa số Thuật toán này có cùng ý tưởng chính như các thuật toán đa dụng đãđược sử
Trang 39dụng ngày nay: Thuật toán sàng bậc hai (quadratic sieve – QS) và sàng trường
số (number field sieve – NFS) Cả hai thuật toán này có thể được tiến hànhsong song để cho phép thực hiện việc phân tích thừa số trên mạng phân tán
Vì vậy các máy tính lớn (mainframe) hay các siêu máy tính không còn là yếu
tố nòng cốt quyết định đến việc giải bài toán phân tích các số nguyên lớn.Trong Bảng
1.1 là dữ liệu lịch sử của bài toán phân tích thừa số nguyên tố
Bảng 1.1 Dữ liệu lịch sử của bài toán phân tích thừa số nguyên tố
1.2.2 Lược đồ chữ ký số
1.2.2.1 Khái niệm
Một lược đồ chữ ký số là một bộ các thuật toán ((��� ��� ��� , , )Thuật toán ��� tạo ra một khóa bí mật �� và một khóa công khai �� tươngứng của người ký S với đầu vào là các tham số hệ thống Thuật toán ��� lấy
các tham số đầu vào là �� và thông điệp � và sinh ra một chữ ký � của �.Với đầu vào là thông điệp �, chữ ký số � và khóa công khai ��, thuật toán
��� sẽ cho ra kết quả ���� hoặc ����� tương đương với chữ ký hợp lệ
hoặc không hợp lệ
Trang 40Một lược đồ chữ ký số phải không thể giả mạo được Có nghĩa làkhông thể tính được chữ ký số của một thông điệp nếu chỉ biết khóa công khai
mà không biết khóa bí mật tương ứng
Một lược đồ tổng quan và đơn giản cho việc tạo và xác thực một lược
đồ chữ ký số được trình bày lần lượt trên Hình 1.1 và Hình 1.2 Một hàm bămđược áp dụng cho thông điệp để tạo ra thông tin đại diện thông điệp (digestmessage) có kích thước cố định
Thông điệp
Thông điệp tóm lược
Thông điệp Chữ ký số
Khóa bí mật của người gửi
Hình 1.1 Quy trình tạo chữ ký sốMột hình thức chữ ký số rất đơn giản đó là mã hóa thông tin đại diệnthông điệp sử dụng khóa riêng của người gửi Bây giờ thì cả thông điệp vàchữ ký có thể được gửi cho người nhận Thông điệp được giải mã và có thểđọc được bởi bất kỳ ai sử dụng khóa công khai của người gửi Nhưng chữ kýphải đảm bảo tính xác thực của người gửi, ở phía người nhận, một hàm ngượcvới hàm ký được áp dụng cho chữ ký số để khôi phục lại đại diện thông điệpban đầu Đại diện thông điệp nhận được được đưa vào cùng hàm băm như bêngửi và tạo ra thông điệp gốc ban đầu Một đại diện thông điệp khác sẽ đượctạo ra từ thông điệp gốc để so sánh với đại diện thông điệp vừa được khôiphục từ chữ ký số Nếu chúng giống nhau thì có thể đảm bảo rằng thông điệp
đã được gửi bởi đúng người gửi và rằng thông điệp đó đã không hề bị thay đổitrong quá trình truyền
Hàm ký Hàm băm