luận án được PGS, TS Nguyễn Hiếu Minh, TS Nguyễn Mạnh Linh, cùng nhóm nghiên cứu tại Viện Công nghệ 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 trong Việ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ện luận án.
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 2BỘ 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
Chuyên ngành: Cơ sở toán học cho tin học
Mã 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ết quả nghiên cứu là trung thực và chưa được công bố trong bất kỳ công trình nà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ễn Hiếu Minh, TS Nguyễn Mạnh Linh, cùng nhóm nghiên cứu tại Viện Công nghệ 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 trong Việ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ện luậ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ên cứ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ứu sinh 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ÁC THỰ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 Kết luận chương 2 68
Chương III: 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Ó 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
Từ viết tắt Nghĩa của từ 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)
𝑍𝑝∗ Nhóm nhân hữu hạn
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ác tiến
bộ về điện tử viễn thông và công nghệ thông tin không ngừng được phát triể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àn thô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áp thuậ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àn thô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 an toà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ải phá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ằm mụ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 trong phầ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ội dung 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ện phá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ại thời điểm tấn công hoặc sau đó một thời gian Tấn công chủ động có thể thêm vào một số thông tin ngoại lai để làm sai lệch nội dung thông tin trao đổi Tấn công chủ động dễ phát hiện nhưng để ngăn chặn hiệu quả thì khó khăn hơn nhiề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ệu nà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àn tuyệ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 đổi thông tin 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à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ê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ề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ới nhữ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ực hiệ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ác nhau 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ật củ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 A lậ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ải thống nhất sử dụng chung một hệ mật nào đó có thể là hệ mật khóa bí mật hoặ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 chung mộ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án phải
đủ mạnh để không thể giải mã được văn bản nếu đơn thuần chỉ dựa vào bả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ần giữ
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ật loạ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ên trao đổ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 tin phả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ày khô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ệc lậ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ũng không
có những bí mật chung Bên nhận được bản mã sử dụng khóa bí mật củ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ăn nế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ật loạ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êu cầu xác định các thừa số nguyên tố
Nghiên cứu tổng quan các cơ sở lý thuyết về các giao thức trao đổi khó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ựng lượ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án khó 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ất giao 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ác lược
đồ chữ ký số RSA, Rabin, Schnorr, Các giao thức ký và mã hóa đồng thờ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ừu tượng, bài toán logarithm rời rạc, các phương pháp thiết kế, phát triển giao thứ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ụng cao 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ương pháp, đối tượng, phạm vi nghiên cứu của luận án, các đóng góp mới, ý nghĩa khoa 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 4 chương,
bố cục như sau:
Chương 1 TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU
Trình bày tổng quan bài toán trao đổi khóa, một số khái niệm, phương pháp đánh giá, tiêu chuẩn an toàn của một giao thức trao đổi khóa Giới thiệu chi 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êu cầ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ại nhữ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 đầu tiê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 qua phâ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ức trao đổ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ải như: 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án khai căn bậc 2 𝑚𝑜𝑑 𝑛 hoặc bài toán logarithm rời rạc trên đường cong Elliptic Một giả thiết đặt ra là trong tương lai, khi các bài toán khó giải lần lượt được giải quyết thì các giao thức trao đổi khóa hiện tại sẽ trở thành khô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ác bà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 đổi khó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ăng tí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àng thay đổ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ủa giao thức trao đổi khóa Ngoài ra nội dung của chương cũng đề cập tới: Các giao 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ủa cá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ên quan; 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óa nhó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ên thủ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ữu hạn 𝑍𝑝∗và một phần tử 𝑔 ∈ 𝑍𝑝∗, với 𝑔 là phần tử sinh ra một nhóm có bậc lớn,
𝑝 là một số nguyên tố lớn Các giá trị 𝑝 và 𝑔 có thể được sinh ra nhờ các thuật
toán mô tả trong [69], [70]
Các tham số đầu vào chung: (𝑝, 𝑔), với 𝑝 là một số nguyên tố lớn, 𝑔 là một phần tử sinh của nhóm nhân 𝑍𝑝∗
Đầu ra: Một giá trị (phần tử) thuộc 𝑍𝑝∗ được chia sẻ giữa A và B
Các bước thực hiện:
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;
- A tính giá trị 𝐾𝐴𝐵 = (𝑦𝐵)𝑥𝐴 = (𝑔𝑥𝐵)𝑥𝐴 𝑚𝑜𝑑 𝑝
- B tính giá trị 𝐾𝐵𝐴 = (𝑦𝐴)𝑥𝐵 = (𝑔𝑥𝐴)𝑥𝐵 𝑚𝑜𝑑 𝑝
Dễ dàng thấy rằng cả A và B đã nhận được một giá trị khóa bí mật chung
chia sẻ, nó có thể được sử dụng trên các hệ mật khóa bí mật
Một số khuyến nghị khi thực hiện và sử dụng giao thức DH:
- Lựa chọn số nguyên tố 𝑝 đủ lớn (|𝑝| ≥ 1024 𝑏𝑖𝑡)
- 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ông
khai để trao đổi khóa, các giao thức trao đổi khóa khác đã được phát triển tương
tự, trong đó có thể kể đến giao thức PGP (Pretty Good Privacy Encryption)
được tạo ra bởi Philip Zimmermann vào năm 1991 [79] Trong giao 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ông khai (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ứng thự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ựa
trê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ức MQV
(Menezes–Qu–Vanstone Protocols), giao thức ECMQV (Elliptic Curve MQV),
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 đều không cung cấp tính chất an toàn là xác thực khóa ẩn MQV cũng đề xuất giao thức của nhóm và chứng minh được giao thức đề xuất cung cấp tính chất an toà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ết trong 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ằng giao 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ức MQV [23] Với việc sử dụng hàm băm (hash function), Krawczyk đã chứng minh giao thức HMQV có độ phức tạp tính toán tương đương với giao thức MQV 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ới thiệu năm
2009 là FHMQV (Fully Hashed MQV) và FHMQV–C (C viết tắt cho 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ào năm 2002 [74] là không sử dụng hàm băm, thay vào đó sử dụng 𝑛2 khóa phiê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ó hai kiểu giao thức xác lập khóa: 1) Các giao thức chuyển khóa (Key Transport Protocols), 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 Agreement Protocols), trong đó cả hai đối tượng trao đổi các thông tin để xác lập một khó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 khi cá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ều nà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ật bằ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ết thúc giao thức A chắc chắn rằng chỉ có B mới có thể thu được giá trị đó Xác thực khóa đôi khi còn được gọi là xác thực khóa ẩn (implicit key authentication);
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úc giao 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óa hiệ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 gia và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 ảnh hưở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 tin giả, 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 được tạ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ả khi ngườ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ếu khó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óa phiê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 Full Forward Secrecy): Nếu khóa bí mật dài hạn của cả hai bên tham gia thỏa thuận khóa bị lộ thì các khóa phiên được tạo ra trước đó vẫn không bị ảnh hưở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 độc lậ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ác khó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ồn tạ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ống như kiểu nặc danh (Anonymity) Tính chất nặc danh có thể có ích trong trường hợp người khởi tạo hoặc người phúc đáp là một đầu cuối hoạt động bên trong một tường lửa (Firewall) Đặc điểm này có được nếu như chúng ta khô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ực hai 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ần chố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ữu trước khi bản mã định danh được gửi đi Giao thức SIGMA là một trong những giao thức được thiết kế để hỗ trợ khả năng bảo vệ định danh Giao thức STS 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ác thô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ành cô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ầu hế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ũng khô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ác
giá 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ửi hoặ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ười
gử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ông phải
A, thì A lại tin tưởng chắc chắn rằng khóa đó được chia sẻ với B Việc thê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ống tố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ài nguyê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ệu hợ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ẩu củ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 Sau khi 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ửi thô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ột giá trị ngẫu nhiên làm định danh phiên (session ID) hoặc sử dụng nhãn thời gian (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óa thỏ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ậy khô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ày bằ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óa hiệ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 chia sẻ
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ện củ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ận khó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óa hiệ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 key confirmation – 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ữa hai 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 xu hướ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ấp khả 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ày ngă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ụng trong các hệ mật khóa đối xứng) Mặt khác, giao thức trao đổi khóa công khai Diffie–Hellman (DHKE) [67] không đảm bảo xác thực giữa hai bên tham gia giao 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ển cá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ểm củ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óa theo 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 Arazi khô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 đổi khóa của Arazi [33] Thay vì phân phối một khóa công khai đơn lẻ trong mỗi phiê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 giao thứ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ên tạ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 giao thức Liu &
Li mỗi bên chọn hai số nguyên ngẫu nhiên) Giao thức này vẫn cung cấp được tính an toàn của giao thức Phan Các khóa phiên trong giao thứ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 cho nên không có bất kỳ mối quan hệ hiện nào giữa 𝐾𝐴𝐵 và 𝐾𝐵𝐴 Do đó, giao thứ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ữa hai 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 giao thứ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ăng chố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át triể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ền thô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ẹn thô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ẫn cò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 ra củ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ày nay, 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ệu quả
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ể được xem 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 trong nhó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 tham gia 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ỏi nhó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ính hiệ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 (Dynamic Peer 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, DPGs thườ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ận khóa
đó là khởi tạo khóa và các yêu cầu hỗ trợ sự thay đổi của nhóm, định nghĩ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ông thụ độ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át triể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ảm thiể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ó được khó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 Đương nhiên, IKA yêu cầu liên lạc với mọi thành viên trong nhóm để có được các phần hình thành khóa nhóm Do đó, nó có thể cần thêm các dịch vụ IKA bảo mậ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ần trong 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ường hợ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òn trong 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ưng cung 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ư đảm bảo việc xác thực người gửi Năm 1976, Whitfield Diffie và Martin Hellman lần đầu tiên mô tả về một lược đồ chữ ký số, mặc dù họ chỉ phỏng đoán rằng nhữ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án RSA và sau
đó được sử dụng như một lược đồ chữ ký số cơ sở [57] Gói phần mềm thương mại đầu tiên sử dụng chữ ký số là Lotus Note 1.0, phát hành nă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án khó 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 𝑎 ∈ 𝑍𝑝∗ sao 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 đa thứ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àm mộ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án logarithm 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ải quyết bài toán logarithm rời rạc 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 tố 𝑝 Ngược lại, thời gian thực hiện củ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ài toán DLP dựa trên một phương pháp gọi là index–calculus Theo phương phá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ân này mà nếu có những cải tiến trong các thuật toán hoặc IFP hoặc DLP được tìm thấy, thì sẽ gần như ngay lập tức sau đó có thể mong chờ một cải tiến tươ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áp phâ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ương thứ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án phân tích số nguyên tương ứng Do vậy có thể nói rằng việc tìm logarithm rời rạ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ực tươ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ương pháp index–calculus được gọi là phương pháp số nguyên Gaussian để tính logarithm 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ách McCurley Diffie–Hellman (McCurley Diffie–Hellman Challenge [41]) bao gồ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ương pháp sàng trường số đã được áp dụng và đã đem lại hiệu quả đặc biệt trong trườ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ặc lớ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ài toá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ích thừ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ật toá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ực thi 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ậy thuậ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ụng ECM, đã 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ởi ECM 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ố đa dụ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ụng thừ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ính liê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ác thừ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ành song 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ố
Những kết quả này chỉ ra rằng, modulo 𝑛 có chiều dài 512 bit không đảm bảo độ an toàn cao khi được sử dụng trong hệ mật RSA Để đảm bảo mức độ bảo mật, các modulo phải có chiều dài 1024 bit hoặc lớn hơn
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ệ
Năm Số lượng chữ số thập phân Số lượng bit MIPS years
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 (digest message) có kích thước cố định
Thông điệp Hàm băm Thông điệp
tóm lược Hàm ký
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ện thô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ược với hàm ký được áp dụng cho chữ ký số để khôi phục lại đại diện thông điệp ban đầu Đại diện thông điệp nhận được được đưa vào cùng hàm băm như bên gử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ẽ được tạ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ôi phụ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 đổi trong quá trình truyền