• Luận án nghiên cứu cải tiến chữ ký số Rabin để giảm chi phí thời gian của thuật toán ký, đồng thời đề xuất các lược đồ chữ ký phát triển chữ ký số Rabin với số mũ e=3, trong đó thuật t
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Ự
LUẬN ÁN TIẾN SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
1 TS Nguyễn Hữu Mộng
2 TS Ngô Trọng Mại
Hà Nội – 2019
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của tôi dưới sự hướng dẫn của các cán bộ hướng dẫn Các số liệu, kết quả nghiên cứu trình bày trong luận án là hoàn toàn trung thực và chưa từng được công bố trong các công trình trước đây Các dữ liệu tham khảo được trích dẫn đầy đủ
Hà Nội, ngày 30 tháng 09 năm 2019
Hoàng Thị Mai
Trang 3LỜI CẢM ƠN
Luận án này được thực hiện tại Viện Khoa học và Công nghệ quân
sự - Bộ Quốc phòng Nghiên cứu sinh xin bày tỏ lòng biết ơn sâu sắc tới Tiến sĩ Nguyễn Hữu Mộng, Tiến sĩ Ngô Trọng Mại đã tận tình hướng dẫn
và giúp đỡ nghiên cứu sinh trong suốt quá trình học tập, nghiên cứu và hoàn thành luận án
Nghiên cứu sinh chân thành cảm ơn các thày cô giáo, các nhà khoa học của Viện Khoa học và Công nghệ quân sự, Viện Công nghệ thông tin, Học viện Kỹ thuật quân sự, Học viện Kỹ thuật Mật mã, đã đóng góp nhiều ý quý báu để nghiên cứu sinh hoàn thành bản luận án này
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 xin bày tỏ lời cảm ơn chân thành tới các đồng nghiệp, gia đình, bạn bè đã luôn động viên, chia sẻ, ủng hộ và giúp
đỡ nghiên cứu sinh vượt qua khó khăn để hoàn thành các nội dung nghiên cứu
NCS Hoàng Thị Mai
Trang 4MỤC LỤC
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT v
DANH MỤC CÁC BẢNG vii
MỞ ĐẦU 1
1 Tính cấp thiết của đề tài luận án 1
2 Mục tiêu nghiên cứu 1
3 Nội dung nghiên cứu 2
4 Đối tượng và phạm vi nghiên cứu 2
5 Phương pháp nghiên cứu 3
6 Ý nghĩa khoa học và thực tiễn 3
7 Bố cục của luận án 3
CHƯƠNG 1 TỔNG QUAN VỀ CHỮ KÝ SỐ VÀ HƯỚNG NGHIÊN CỨU PHÁT TRIỂN 5
1.1 Lược đồ chữ ký số 5
1.2 Một số lược đồ chữ ký số 6
1.2.1 Lược đồ RSA 7
1.2.2 Chữ ký số Rabin 8
1.2.3 Chữ ký số Rabin-Williams 10
1.2.4 Lược đồ chữ ký DSA 12
1.2.5 Lược đồ ECDSA 13
1.3 Chi phí thời gian của các phép tính số học trên Zn 16
1.4 Đánh giá chi phí thời gian kiểm tra của một số lược đồ chữ ký 18
1.4.1 Chi phí kiểm tra của lược đồ chữ ký ECDSA 18
1.4.2 Đánh giá chi phí kiểm tra của một số lược đồ chữ ký 20
1.5 Vấn đề thực tiễn và hướng nghiên cứu của đề tài luận án 25
1.6 Kết luận chương 1 28
CHƯƠNG 2 CẢI TIẾN VÀ PHÁT TRIỂN LƯỢC ĐỒ CHỮ KÝ RABIN 29
2.1 Mở đầu 29
2.2 Cơ sở toán học 30
2.2.1 Thặng dư bậc hai và việc khai căn bậc hai trên trường GF(p)
với p nguyên tố 30
2.2.2 Định lý phần dư Trung hoa và khai căn bậc hai trên vành ℤ𝑛 33
2.2.3 Thuật toán khai căn bậc 3 theo modulo p 33
2.2.4 Một số kết quả bổ trợ 36
2.3 Lược đồ chữ ký RW0 38
2.3.1 Lược đồ chữ ký RW0 38
2.3.2 Tính đúng đắn của lược đồ RW0 40
2.3.3 Độ an toàn của lược đồ chữ ký RW0 42
2.3.4 Tính hiệu quả của lược đồ RW0 43
Trang 52.4 Lược đồ chữ ký R0 46
2.4.1 Lược đồ chữ ký R0 46
2.4.2 Tính đúng đắn của lược đồ R0 48
2.4.3 Độ an toàn lược đồ chữ ký R0 49
2.4.4 Tính hiệu quả của lược đồ chữ ký R0 49
2.5 Lược đồ chữ ký PCRS 54
2.5.1 Lược đồ chữ ký PCRS 55
2.5.2 Tính đúng đắn của lược đồ chữ ký 56
2.5.3 Độ an toàn của lược đồ chữ ký 57
2.5.4 Chi phí thời gian của lược đồ PCRS 58
2.6 Kết luận chương 2 60
CHƯƠNG 3 LƯỢC ĐỒ CHỮ KÝ KẾT HỢP RABIN VÀ RSA 61
3.1 Đảm bảo toán học của lược đồ chữ ký cho trường hợp e=3 61
3.1.1 Một số thống nhất và ký hiệu 61
3.1.2 Hàm CR và việc khai căn bậc 3 61
3.1.3 Các tập E(β), B(β) 62
3.1.4 Quan hệ giữa việc giải phương trình đồng dư bậc 3 trên ℤ𝑛 và việc phân tích n ra thừa số nguyên tố 64
3.2 Lược đồ DRSA-RABIN3 65
3.2.1 Lược đồ DRSA-RABIN3 66
3.2.2 Tính đúng đắn của lược đồ DRSA-RABIN3 67
3.2.3 Độ an toàn của lược đồ DRSA-RABIN3 67
3.2.4 Chi phí thời gian của lược đồ DRSA-RABIN3 68
3.3 Lược đồ PRSA-RABIN3 69
3.3.1 Lược đồ chữ ký PRSA-RABIN3 69
3.3.2 Tính đúng đắn của lược đồ chữ ký 70
3.3.3 Độ an toàn của lược đồ chữ ký 72
3.3.4 Chi phí thời gian của lược đồ PRSA-RABIN3 72
3.4 Các lược đồ DRSA-Rabin3 và PRSA-Rabin3 cải tiến 73
3.4.1 Cơ sở toán học của việc cải tiến 73
3.4.2 Lược đồ PRSA-Rabin3 cải tiến 75
3.4.3 Lược đồ DRSA-Rabin3 cải tiến 78
3.5 Kết luận chương 3 83
KẾT LUẬN 84
1 Các kết quả đã đạt được 84
2 Những đóng góp mới của luận án 85
3 Hướng nghiên cứu tiếp theo 85
CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ 86
TÀI LIỆU THAM KHẢO 87
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
(𝑎
𝑛)
Ký hiệu Jacobi
|| Toán tử nối xâu
𝐶𝑜𝑑𝑒(𝑠) Hàm đổi xâu bít 𝑠 = 𝑥0𝑥1… 𝑥𝑡−1 sang số nguyên
NQRp Tập các phần tử không là thặng dư bậc hai modulo p
QRp Tập các phần tử là thặng dư bậc hai modulo p
𝑍𝑛 Vành số nguyên với phép cộng và phép nhân rút gọn theo
modulo n
𝑍𝑛∗ Nhóm nhân modulo n
𝑔𝑐𝑑(𝑎, 𝑏) Ước số chung lớn nhất của a và b
𝑙𝑒𝑛(𝑥) Độ dài bít của số tự nhiên x
𝑡𝑓 Chi phí thời gian để tính giá trị hàm f
𝑤𝑡(𝑥) Trọng số của số nguyên x
𝑥 𝑚𝑜𝑑 𝑝 Phần dư khi chia x cho p
𝜙(𝑛) Số các số nguyên a thỏa mãn 0 ≤ 𝑎 < 𝑛 và gcd(𝑎, 𝑛) = 1
CA Thẩm quyền chứng thực (Certificate Authority)
DES Chuẩn mã hóa dữ liệu (Data Encryption Standard)
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)
ECDSA Thuật toán chữ ký số đường cong Eliptic (Elliptic Curve
Digital Signature Algorithm) FIPS Tiêu chuẩn xử lý thông tin liên bang (Mỹ) (Ferderal
Infomation Processing Standard) Hash Hàm băm (Hash function)
Trang 7MD Bản tóm tắt (Message Digest)
NCS Nghiên cứu sinh
PKCS Các chuẩn mã hoá khoá công khai do hãng RSA đưa ra
(Public Key Cryptography Standards) RSA Tên một hệ thống mật mã khoá công khai do các tác giả
Ron Rivest, Adi Shamir và Leonard Adleman phát minh SHA Hàm băm mật mã (Secure Hash Algorithm)
Trang 8DANH MỤC CÁC BẢNG
Trang
Bảng 1.1-Chi phí thời gian chạy các phép tính số học trên Zn 17
Bảng 1.2- Chi phí phép nhân đôi điểm, cộng điểm trên đường cong
elliptic trên các hệ tọa độ khác nhau 18
Bảng 1.3- Kích thước khóa RSA, DL và EC và mức độ an toàn 20
Bảng 1.4- Thuật toán kiểm tra RSA, Rabin và DSA 21
Bảng 1.5- Chi phí thời gian thuật toán kiểm tra Rabin và ECDSA 25
Bảng 3.1- Thời gian tạo chữ ký lược đồ gốc và lược đồ cải tiến 78
Trang 9MỞ ĐẦU
1 Tính cấp thiết của đề tài luận án
Hiện nay, việc triển khai ứng dụng chữ ký số trong các giao dịch điện tử ngày càng phát triển tại Việt Nam Sự tăng trưởng này là kết quả của các điều kiện cơ sở hạ tầng và hành lang pháp lý liên quan đến chữ ký số ngày càng hoàn thiện Về cơ sở hạ tầng, theo sách trắng Công nghệ thông tin và Truyền thông Việt Nam 2017, giá cước dịch vụ Internet băng rộng cố định tại Việt Nam đang ở mức thấp nhất thế giới với vị trí xếp hạng 1/139 nước [1], số người sử dụng Internet năm 2016 đã lên tới hơn 50 triệu người Về pháp lý, luật giao dịch điện tử có hiệu lực từ năm 2005 đã qui định các giao dịch điện tử hoàn toàn toàn có tính pháp lý như các giao dịch thực hiện bằng văn bản giấy với chữ ký thông thường
Về lĩnh vực chữ ký số, hệ thống văn bản pháp luật ngày càng hoàn thiện, cùng với đó số lượng các đơn vị được cấp phép cung cấp dịch vụ chữ ký số ngày càng tăng Sau khi Trung tâm Chứng thực Chữ ký số Quốc gia được thành lập năm 2008 đã có 09 doanh nghiệp được cấp giấy phép cung cấp dịch vụ chứng thực chữ ký số công cộng cho các tổ chức và cá nhân Số lượng chứng thư số cấp trong năm 2015 tăng 75% so với năm 2014 Mặc dù
có sự phát triển nhanh chóng trong thời gian gần đây nhưng khả năng ứng dụng của chữ ký số là rất lớn và chữ ký số đóng vai trò hết sức quan trọng đối với tương lai phát triển của chính phủ điện tử và thương mại điện tử tại Việt Nam
Trong bối cảnh đó, việc nghiên cứu cải tiến hiệu quả của các lược đồ chữ
ký số và xây dựng các lược đồ chữ ký số mới là rất cần thiết, có ý nghĩa sâu sắc về học thuật và thực tiễn
2 Mục tiêu nghiên cứu
Các giao dịch mật mã kiểu “nhiều-một” như các đầu mối tiếp nhận hồ
sơ của dịch vụ hành chính công, xác định tính hợp lệ của phiếu bầu cử trong
Trang 10việc bầu cử điện tử, có dạng nhiều người gửi thông tin đến một người, dẫn đến yêu cầu xác thực danh tính được tiến hành thường xuyên với số lượng lớn Đặc điểm này cũng dẫn đến yêu cầu đối với chữ ký số mà dịch vụ sử dụng, cụ thể là thuật toán kiểm tra chữ ký số cần có thời gian chạy thấp Mục tiêu của luận án là xây dựng hệ chữ ký số khóa công khai có chi phí kiểm tra chữ ký thấp cho các ứng dụng sử dụng giao dịch mật mã kiểu
“nhiều-một”
3 Nội dung nghiên cứu
• Nghiên cứu các hệ chữ ký số cơ bản dựa trên các bài toán khó của lý thuyết số: bài toán phân tích số, bài toán logarithm rời rạc, bài toán logarithm rời rạc trên đường cong elliptic
• Trên cơ sở nghiên cứu các hệ chữ ký số cơ bản và các công bố khoa học liên quan trực tiếp tới mục tiêu luận án, luận án lựa chọn lược đồ chữ ký Rabin và RSA là cơ sở cho các cải tiến đề xuất lược đồ chữ ký số mới
• Luận án nghiên cứu cải tiến chữ ký số Rabin để giảm chi phí thời gian của thuật toán ký, đồng thời đề xuất các lược đồ chữ ký phát triển chữ ký
số Rabin với số mũ e=3, trong đó thuật toán ký được thực hiện theo hướng cải tiến như lược đồ Rabin
• Luận án nghiên cứu đề xuất lược đồ chữ ký kết hợp nguyên lý thiết kế của chữ ký số Rabin và RSA Luận án chứng minh rằng các lược đồ chữ
ký đề xuất có chi phí thời gian đáp ứng được các yêu cầu triển khai thực tiễn theo mục tiêu luận án đặt ra
4 Đối tượng và phạm vi nghiên cứu
Đối tượng và phạm vi nghiên cứu của luận án là cơ sở toán học lý thuyết
số của các hệ mật và hệ chữ ký số cơ bản; các lược đồ chữ số có chi phí kiểm tra thấp: RSA, Rabin, DSA, ECDSA,
Trang 115 Phương pháp nghiên cứu
• Tham khảo các công bố khoa học, sách, tài liệu chuyên ngành, báo cáo khoa học về lĩnh vực mật mã, đặc biệt nội dung là chữ ký số
• Sử dụng các công cụ toán học của lý thuyết số để xây dựng các giải thuật cho lược đồ chữ ký số đề xuất
• Sử dụng lý thuyết về độ phức tạp thuật toán để đánh giá chi phí thời gian chạy của các lược đồ chữ ký đề xuất
6 Ý nghĩa khoa học và thực tiễn
Về ý nghĩa khoa học, luận án đề xuất một số lược đồ chữ ký số mới trên
cơ sở cải tiến và phát triển lược đồ chữ ký Rabin, kết hợp chữ ký số Rabin
và RSA Các lược đồ chữ ký đề xuất đã cải tiến một số điểm hạn chế của lược đồ gốc nhằm tăng hiệu quả thuật toán, đồng thời có độ mật được kế thừa
từ lược đồ gố Rabin và RSA
Về ý nghĩa thực tiễn, các lược đồ chữ ký mới được đề xuất trong luận án phù hợp trong các giao dịch mật mã dạng “nhiều-một” của các ứng dụng chữ
ký số trong chính phủ điện tử và thương mại điện tử
Chương 1: Tổng quan về chữ ký số và hướng nghiên cứu phát triển
Chương này trình bày các khái niệm cơ bản liên quan trực tiếp đến vấn
đề nghiên cứu của luận án, tổng quan về chữ ký số và hướng nghiên cứu của
đề tài luận án Trên cơ sở phân tích và so sánh thời gian kiểm tra của các lược đồ chữ ký đã được đưa vào một số chuẩn chữ ký số và phân tích tình
Trang 12hình nghiên cứu hiện nay về chữ ký số, chương 1 nêu rõ hướng nghiên cứu của đề tài luận án, là cơ sở cho việc nghiên cứu phát triển một số lược đồ chữ
ký số ở chương 2 và chương 3
Chương 2: Cải tiến và phát triển lược đồ chữ ký Rabin
Chương này đề xuất lược đồ chữ ký dòng Rabin Chương này đề xuất 03 lược đồ chữ số mới, bao gồm:
• Lược đồ chữ ký cải biên từ lược đồ Rabin
• Lược đồ chữ ký cải biên từ lược đồ Rabin-Williams
• Phát triển lược đồ chữ ký dòng Rabin với số mũ e=3
Các lược đồ cải biên đều sử dụng kỹ thuật tránh tính toán ký hiệu Jacobi
và đảm bảo hiệu quả về chi phí thời gian chạy
Chương 3: Lược đồ chữ ký kết hợp Rabin và RSA
Chương này đề xuất lược đồ chữ ký số kết hợp Rabin và RSA với số mũ kiểm tra e=3 Các lược đồ đề xuất bao gồm lược đồ xác suất và lược đồ tất định Các lược đồ đề xuất đều có độ mật và thời gian chạy đảm bảo yêu cầu theo mục tiêu luận án đặt ra
Kết luận
Phần kết luận tóm tắt các kết quả đạt được, những đóng góp mới của luận
án và đề xuất một số ý kiến về việc phát triển một lược đồ chữ ký số cũng như ứng dụng của chúng
Trang 135 V là tập hữu hạn các thuật toán kiểm tra
6 Với mỗi kK tồn tại một thuật toán ký sig k và một thuật toán A
kiểm tra ver k tương ứng, mỗi V sig k :P→S và
},
{
ver k → là những hàm sao cho với mỗi mP
và sS thoả mãn phương trình sau:
( , )
k k
k
true s sig m ver s m
Chữ ký số (digital signature) là một chuỗi dữ liệu được sinh ra bởi một
lược đồ chữ ký số có chức năng liên kết một thông báo với thực thể tạo ra
nó, nhằm đáp ứng các yêu cầu về: tính xác thực về nguồn gốc và tính toàn vẹn về nội dung của thông báo được ký
Định nghĩa 1.3
Thuật toán tạo chữ ký (còn gọi là thuật toán ký - digital signature
generation algorithm/signature generation algorithm) là một phương pháp
tạo lập chữ ký số
Trang 14Định nghĩa 1.4
Thuật toán kiểm tra chữ ký (digital signature verification algorithm/
verification algorithm) là phương pháp kiểm tra để khẳng định rằng một chữ
ký số là hợp lệ hay ngược lại
Các thuộc tính cần có của một lược đồ chữ ký số
Một lược đồ chữ ký cần đảm bảo bốn thuộc tính sau đây:
• Tính đầy đủ: đảm bảo mọi thông báo đều ký được
• Tính đúng đắn: Trong một lược đồ chữ ký số, mọi chữ ký được tạo ra bởi thuật toán tạo chữ ký đều được chấp nhận bởi thuật toán kiểm tra chữ ký
• Tính khả thi: Thuật toán tạo chữ ký là dễ dàng đối với người ký (có khóa mật) và thuật toán kiểm tra là dễ dàng đối với mọi người (sử dụng khóa công khai) Thuộc tính này thường được đặc trưng bởi độ phức tạp của thuật toán ký và thuật toán kiểm tra là đa thức đối với các đối tượng tương ứng
• Tính an toàn trước tấn công tìm tham số mật và tấn công giả mạo chữ ký: thuộc tính này thường được đặc trưng bởi một bài toán khó của lý thuyết
số
1.2 Một số lược đồ chữ ký số
Trong các lược đồ chữ ký khóa công khai, với mỗi cặp khóa được chọn thì việc tính toán khóa mật từ khóa công khai đều được đảm bảo bằng một bài toán khó của lý thuyết số Các bài toán cơ bản đó là:
• Bài toán phân tích số (FP – Factorization Problem) Độ khó của bài toán này đảm bảo tính an toàn cho hệ mật RSA và chữ ký số RSA
• Bài toán Logarithm rời rạc (DLP- Discrete Logarithm Problem) Độ khó của bài toán DLP đảm bảo tính an toàn cho hệ mật mã khóa công khai và chữ ký số ElGamal cũng như nhiều hệ chữ ký số khác, chẳng hạn DSA (Digital Signature Algorithm)
Trang 15• Bài toán logarithm rời rạc trên đường cong elliptic (ECDLP-Elliptic Curve Discrete Logarithm Problem) Độ khó của bài toán này đảm bảo
an toàn cho các lược đồ hệ mật trên đường cong Elliptic
Trong phần này, luận án trình bốn lược đồ chữ ký số cơ bản có ảnh hưởng trực tiếp đến vẫn đề nghiên cứu của luận án là lược đồ RSA, lược đồ Rabin
và lược đồ Rabin-Williams, lược đồ DSA và lược đồ ECDSA
1.2.1 Lược đồ RSA
Trong lịch sử phát triển của khoa học mật mã, nếu như Diffie, Hellman
và Merkle đã phát minh ra khái niệm mật mã khóa công khai thì Rivest, Shamir và Adleman lại có công lớn lao phát minh ra RSA, một sự thực thi
đẹp nhất của hệ mật này
Thuật toán RSA đã được R.L Rivest, A Shamir và L.M.Adleman công
bố lần đầu tiên vào tháng 8 năm 1977 [2] Trên vành Zn , thuật toán RSA sử
dụng số nguyên dương e là khóa công khai và số nguyên d là khóa bí mật
Số e cần thỏa mãn nguyên tố cùng nhau với 𝜙(𝑛) = (𝑝 − 1) × (𝑞 − 1) và theo đó, số d tìm được bằng các giải phương trình đồng dư 𝑑𝑒 ≡
1 𝑚𝑜𝑑 𝜙(𝑛) Để xác định khóa bí mật d từ khóa công khai (n,e) cần xác định được hai nhân tử p và q của n, đây chính là bài toán phân tích số (FP- Factorization Problem)
Thuật toán 1.1 – Thuật toán sinh khóa RSA
INPUT: tham số an toàn l
OUTPUT: khóa công khai (n,e) và khóa bí mật d
1 Chọn hai số nguyên tố lớn p, q có cùng độ dài 𝑙/2 bit;
Trang 16khóa công khai e để kiểm tra chữ ký Thuật toán RSA dùng cho ứng dụng xác thực được trình bày như sau:
Thuật toán 1.2 – Thuật toán tạo chữ ký RSA
INPUT: khóa công khai (n,e), khóa bí mật d, văn bản 𝑚
OUTPUT: chữ ký s
1 ℎ ← 𝐶𝑜𝑑𝑒(𝐻(𝑚));
2 𝑠 ← ℎ𝑑 𝑚𝑜𝑑 𝑛;
3 return (s)
Thuật toán 1.3 – Thuật toán kiểm tra chữ ký RSA
INPUT: khóa công khai (n,e), văn bản m, chữ ký 𝑠
OUTPUT: Chữ ký hợp lệ hoặc không hợp lệ
1 ℎ ← 𝐶𝑜𝑑𝑒(𝐻(𝑚));
2 ℎ′ ← 𝑠𝑒 𝑚𝑜𝑑 𝑛;
3 If h=h’ then return(“Chữ ký hợp lệ”)
else return(“Chữ ký không hợp lệ”)
Chi phí thời gian chạy của hệ RSA chủ yếu là chi phí của phép tính lũy thừa theo modulo n Chi phí thời gian chạy của hệ RSA sẽ được trình bày chi tiết trong mục 1.4
1.2.2 Chữ ký số Rabin
Ngay sau khi hệ RSA ra đời, năm 1979 M O Rabin công bố lược đồ chữ
ký số Rabin [3] có độ an toàn cũng được đảm bảo bởi độ khó của bài toán
phân tích số Nếu trong lược đồ chữ ký RSA, tham số e cần thỏa mãn nguyên
tố cùng nhau với 𝜙(𝑛), thì trong lược đồ Rabin tham số e=2 Với việc lựa chọn e=2, lược đồ chữ ký Rabin đạt được ưu điểm nổi trội khi chỉ cần thực hiện một phép bình phương modulo n trong thuật toán kiểm tra chữ ký Tuy nhiên để có được điều này, các tham số hệ thống p, q của lược đồ Rabin cần thỏa mãn là số nguyên tố đồng dư 3 (mod 4)
Trang 17(n, p, q, b) là khóa bí mật của người ký
OUTPUT: (s,R) ∈ ℤn∗{0,1}k là chữ ký của người giữ bộ (n, p, q, b) lên thông báo M
1 Lấy ngẫu nhiên xâu k bít R
2 u Code(Hash(M||R));
3 Giải phương trình
Nếu vô nghiệm, quay lại bước 1
Ngược lại lấy s là một nghiệm của phương trình (1.2)
Trang 18(s,R) là chữ ký lên M;
(n,b) là khóa công khai của người ký
OUTPUT: Sự chấp nhận hay bác bỏ (s,R) là chữ ký lên M của người có khóa công khai (n,b)
x(x + b) = u (mod p)
và
x(x + b) = u (mod q)
để tìm được bốn nghiệm 𝑠 = ±𝑥 (𝑚𝑜𝑑 𝑝) và 𝑠 = ±𝑥 (𝑚𝑜𝑑 𝑞) Từ bốn nghiệm này, sử dụng định lý phần dư Trung hoa ta tìm được bốn nghiệm khác nhau của s Việc lựa chọn giá trị s nào trong bốn giá trị tìm được là một trong những vấn đề cần cải tiến của lược đồ Rabin
Tháng 10 năm 1980 Williams đưa ra một cải biên lược đồ Rabin, lược đồ được viết tắt là RW, bởi tên chung của hai ông [4] Lược đồ Rabin cần đến
4 phép tính ký hiệu Jacobi trong thuật toán tạo chữ ký, trong khi Williams cải tiến chỉ cần một phép tính ký hiệu Jacobi Lược đồ RW đã được đưa vào các chuẩn ISO/IEC 9796 [5]
Tham số hệ thống
Số blum n = p.q thỏa mãn
Trang 19Khóa bí mật do người ký giữ là bộ (n, p, q, c) và khóa công khai cho các
(n, p, q, c) là khóa bí mật của người ký
OUTPUT: 𝑠 ∈ ℤn∗ sao cho 0 s < n/2 là chữ ký của người giữ bộ (n,p,q,c) lên thông báo M
n là khóa công khai của người ký
OUTPUT: Accept ∈ {0,1} Trong đó sự chấp nhận s là chữ ký lên M của người có khóa công khai n khi và chỉ khi Accept = 1
Trang 20Hệ logarithm rời rạc đầu tiên là giao thức thỏa thuận khóa được Diffie
và Hellman đề xuất năm 1976 [6] Năm 1984, Elgamal đưa ra hệ mật mã và lược đồ chữ ký khóa công khai logaritm rời rạc và kể từ đó, đã có rất nhiều công bố khoa học về hệ mật và lược đồ chữ ký dạng này
Chữ ký số DSA được được công bố năm 1991 bởi viện Tiêu chuẩn và Công nghệ Hoa kỳ (NIST – U.S National Institute of Standard and Technology) Chữ ký DSA là chữ ký số họ Elgamal được đề xuất bởi Kravitz [7] và năm 1994 đã được đưa vào chuẩn FIP 186 [8] với tên gọi chuẩn chữ
ký số DSS (Digital Signature Standard)
Thuật toán 1.8 – Thuật toán sinh chữ ký DSA
INPUT: Các tham số hệ thống (p,q,g), khóa riêng x, văn bản 𝑚
Trang 21Thuật toán 1.9 – Thuật toán kiểm tra chữ ký DSA
INPUT: Các tham số hệ thống (p,q,g), khóa công khai y, văn bản m, chữ
ký (r,s)
OUTPUT: Chữ ký hợp lệ hoặc không hợp lệ
1 Kiểm tra r và s có phải là những số nguyên trong khoảng [1,q-1] Nếu không trả về return(“Chữ ký không hợp lệ”)
a) Đường cong elliptic
Xét 𝐹𝑞 = {0,1,2, … , 𝑞 − 1} với q là số nguyên tố hoặc q có dạng 𝑞 = 𝑝𝑚với p là một số nguyên tố và m là số nguyên dương Khi này 𝐹𝑞 là trường hữu hạn bậc q, p gọi là đặc số và m là bậc mở rộng của 𝐹𝑞
Một đường cong elliptic E trên 𝐹𝑞 là đường cong có phương trình dạng:
𝑦2 = 𝑥3+ 𝑎𝑥 + 𝑏
Trong đó 𝑎, 𝑏 ∈ 𝐹𝑞 Đường cong E có định thức ∆= −16(4𝑎3+ 27𝑏) Đường cong này sẽ suy biến và không có đủ ba nghiệm phân biệt khi ∆= 0
Trong phần này, chúng ta chỉ xét các đường cong có ∆≠ 0 Do đó a,b phải
thỏa mãn điều kiện 4𝑎3 + 27𝑏 ≠ 0
Một cặp (x,y) với 𝑥, 𝑦 ∈ 𝐹𝑞 là một điểm trên đường cong nếu (x,y) thỏa mãn phương trình của E “Điểm vô cùng” (∞), ký hiệu là O, được thêm vào
Trang 22đường cong, là điểm trên cùng và dưới cùng của trục y Tập hợp tất cả các điểm trên E được ký hiệu là E(Fq)
Xét tập E(Fq) với phép cộng hai điểm P= (x1, y1) và Q=(x2, y2) trên đường cong elliptic E để cho kết quả điểm thứ ba R= (x3, y3) Kẻ đường thẳng qua hai điểm P và Q, đường thẳng này cắt đường cong tại điểm thứ ba Khi đó R
là điểm đối xứng của giao điểm thứ ba này qua trục x
Trong trường hợp hai điểm P và Q trùng nhau, ta có phép cộng hai điểm trở thành phép nhân đôi điểm P trên đường cong Elliptic để được điểm R
Kẻ tiếp tuyến của đường cong tại P, tiếp tuyến này cắt đường cong tại điểm thứ hai Khi đó, điểm R là điểm đối xứng của giao điểm thứ hai này qua trục
x Chi tiết các phép tính về đường cong elliptic có thể xem trong [9]
Tập E(Fq) cùng phép cộng điểm trên đường cong E lập thành một nhóm với “điểm vô cùng” O là phần tử đơn vị Nhóm cộng E(Fq) được sử dụng là không gian khóa trong các hệ mật mã và chữ ký số logarithm rời rạc trên đường cong elliptic
b) Bài toán Logarithm rời rạc trên đường cong elliptic (ECDLP- Elliptic Cuver Discrete Logarithm Problem)
Cho đường cong E trên trường hữu hạn Fq, điểm 𝑃 ∈ 𝐸(𝐹𝑞) với bậc n (𝑛𝑃 = Ο = ∞) và điểm 𝑄 ∈ 𝐸(𝐹𝑞) Tìm số nguyên 𝑘 ∈ [0, 𝑛 − 1] sao cho
𝑄 = 𝑘𝑃 Số nguyên k được gọi là logarithm rời rạc trên đường cong elliptic của Q đối với cơ sở P, và thường được viết là 𝑘 = 𝑙𝑜𝑔𝑃𝑄
c) Tham số của hệ chữ ký đường cong Elliptic
Tham số của hệ chữ ký đường cong Elliptic là bộ 𝐷 =(𝑞, 𝐹𝑅, 𝑆, 𝑎, 𝑏, 𝑃, 𝑛, ℎ), trong đó
• 𝑞 là bậc của trường hữu hạn 𝐹𝑞
• 𝐹𝑅 (field representation) là phương pháp biểu diễn trường hữu hạn được sử dụng cho các phần tử của trường 𝐹𝑞
Trang 23• 𝑆 là mầm được tạo ra một cách ngẫu nhiên, được sử dụng trong trường đường cong Elliptic
• 𝑎, 𝑏 ∈ 𝐹𝑞 là hai hệ số của đường cong Elliptic E trên 𝐹𝑞 (nghĩa là
Lược đồ sử dụng bộ tham số 𝐷 = (𝑞, 𝐹𝑅, 𝑆, 𝑎, 𝑏, 𝑃, 𝑛, ℎ) Người ký chọn
số d là khóa mật và tạo khóa công khai 𝑄 = 𝑑𝑃, sử dụng hàm băm H để tạo
ra giá trị tóm lược e của thông báo m Chữ ký số là cặp (r,s) được tính theo
thuật toán 1.10
Thuật toán 1.10 – Thuật toán tạo chữ ký ECDSA
INPUT: 𝐷 = (𝑞, 𝐹𝑅, 𝑆, 𝑎, 𝑏, 𝑃, 𝑛, ℎ), khóa riêng d, thông báo m OUTPUT: chữ ký (r,s)
1 Chọn số nguyên k ngẫu nhiên thuộc [1,n-1];
2 (𝑥1, 𝑦1) ← 𝑘𝑃 và chuyển đổi 𝑥1 sang số nguyên 𝑥̅1;
3 𝑟 ← 𝑥̅1 𝑚𝑜𝑑 𝑛
4 If 𝑟 = 0 then go to step 1;
Trang 245 𝑒 ← H(m);
6 𝑠 ← 𝑘−1(𝑒 + 𝑑𝑟) 𝑚𝑜𝑑 𝑛
7 If 𝑠 = 0 then go to step 1;
8 return (𝑟, 𝑠)
Nhận được văn bản m và chữ ký (r,s), người xác thực áp dụng thuật toán
1.11 để kiểm tra chữ ký, từ đó kết luận chữ ký có hợp lệ hay không
Thuật toán 1.11 – Thuật toán kiểm tra chữ ký ECDSA
INPUT: 𝐷 = (𝑞, 𝐹𝑅, 𝑆, 𝑎, 𝑏, 𝑃, 𝑛, ℎ), chữ ký (𝑟, 𝑠), khóa công khai Q, thông báo m
OUTPUT: Chữ ký hợp lệ hoặc không hợp lệ
1 Kiểm tra 𝑟 𝑣à 𝑠 có phải là số nguyên nằm trong khoảng [1, n-1] Nếu không trả về return(“chữ ký không hợp lệ”);
2 𝑒 ← 𝐶𝑜𝑑𝑒(𝐻(𝑚));
3 𝑤 ← 𝑠−1 𝑚𝑜𝑑 𝑛;
4 𝑢1 ← 𝑒𝑤 𝑚𝑜𝑑 𝑛 và 𝑢2 ← 𝑟𝑤 𝑚𝑜𝑑 𝑛;
5 𝑋 ← 𝑢1𝑃 + 𝑢2𝑄;
6 If 𝑋 = ∞ then return(“Chữ ký không hợp lệ”);
7 Chuyển đổi hoành độ 𝑥1 của X sang số nguyên 𝑥̅1;
8 𝑣 ← 𝑥̅1 𝑚𝑜𝑑 𝑛;
9 If 𝑣 = 𝑟 then return(“Chữ ký hợp lệ”);
else return(“Chữ ký không hợp lệ”)
1.3 Chi phí thời gian của các phép tính số học trên Z n
Chi phí các phép tính số học là cơ sở để tính toán chi phí thuật toán Trong phần này, luận án trình bày chi phí thời gian chạy của một số thuật toán thực hiện các phép toán số học:
(1) Chi phí cho phép cộng hoặc trừ hai số nguyên k-bít là 𝑂(𝑘) [9]
Trang 25(2) Phép nhân hai số nguyên 2.k-bít theo phương pháp của Ofman cần đến 3 phép nhân hai số k-bít [9] Khi này chi phí phép nhân, ký hiệu là M, và chi phí cho phép bình phương hai số lớn, ký hiệu là S, là xấp xỉ nhau (M ≈ S) Hơn thế nữa ta còn thu được chi phí cho phép nhân là:
𝑀 = 𝑂(𝑘𝑙𝑛3/𝑙𝑛2)
Công thức 1.6 Ký hiệu M(k) là chi phí tính toán để thực hiện một phép
nhân hai số nguyên k-bít Khi đó với mọi số nguyên dương h, k ta có
Do đó hệ quả thu được là:
Công thức 1.7: Chi phí thực hiện một phép nhân rút gọn
theo modulo n là xấp xỉ 3.M(len(n)) (1.7)
(3) Thuật toán tính ký hiệu Jacobi một số theo modulo k-bít theo luật bình phương tương hỗ có độ phức tạp là 𝑂(𝑘2) [11]
(4) Chi phí tính nghịch đảo một số theo modulo k-bít, ký hiệu I, và chi phí cho phép chia hai số theo modulo k-bít, ký hiệu D, theo thuật toán của Sorenson có độ phức tạp là 𝑂(𝑘2/𝑙𝑛𝑘) [11]
Chi phí thời gian của các phép tính số học trên Zn được cho trong bảng 1.1
Bảng 1.1-Chi phí thời gian chạy các phép tính số học trên Zn
(đơn vị: BO – Bit Operations)
Chi phí cho phép cộng hoặc trừ
Trang 26Chi phí thực hiện phép nhân rút
Tính ký hiệu Jacobi một số theo
modulo k-bít theo luật bình
1.4 Đánh giá chi phí thời gian kiểm tra của một số lược đồ chữ ký
1.4.1 Chi phí kiểm tra của lược đồ chữ ký ECDSA
a) Chi phí các phép toán trên hệ đường cong eliptic:
Chuẩn FIP 186-2 [12] đưa ra 5 số nguyên tố được dùng để xây dựng các đường cong elliptic, các số nguyên tố đó được gọi là số nguyên tố NIST, đó là:
𝑏 trên ℤp với p là số nguyên tố lớn hơn 3
Chi phí cho phép cộng hai điểm và phép nhân đôi điểm theo các hệ tọa
độ khác nhau cho bởi bảng 1.2 [9]
Bảng 1.2- Chi phí phép nhân đôi điểm, cộng điểm trên đường cong
elliptic trên các hệ tọa độ khác nhau
Doubling General addition Mixed coordinater 2A → A
2P → P
2J → J
2C → C
1I, 2M, 2S 7M, 3S 4M, 4S 5M, 4S
J + A → J
J + C → J
C + A → C
8M, 3S 11M, 3S 8M, 3S
Trang 27Chi phí cho phép nhân một số nguyên e với một điểm trên đường cong elliptic theo khai triển NAF là len(e) phép nhân đôi điểm và khoảng 𝑙𝑒𝑛(𝑒)
3phép cộng hai điểm
Lưu ý: Các số nguyên tố p được dùng xây dựng các đường cong elliptic
là các số nguyên tố NIST nên một phép nhân trên ℤp có chi phí xấp xỉ M(len(p))
b) Chi phí kiểm tra của lược đồ chữ ký ECDSA:
Xét chi phí kiểm tra chữ ký ECDSA của thuật toán 1.11 Thuật toán cần đến:
+ Một phép nghịch đảo của s theo số điểm n của đường cong tại bước 3 + Hai phép nhân rút gọn theo n tại bước 4
+ Tính R = u1 P + u2 Q tại bước 5
+ Quy đổi hoành độ của R từ tọa độ Jacobian sang tọa độ affine
Để tính u1 P + u2 Q tại bước 5 ta cần thực hiện hai phép nhân u1 P và
u2 Q với P, Q vốn luôn được lưu trữ trong tọa độ affine Cho nên việc dùng khai triển NAF cho các thừa số u1, u2 và việc tính toán trong hệ tọa độ Jacobian với đầu ra là u1 P và u2 Q cũng trong hệ tọa độ này (xem bảng 1.2) thì:
Trang 28(J + J → J) = 12M + 4S = 16M
Việc chuyển sang tọa độ affine điểm trên trong bước 7 được thực hiện theo công thức:
x = X/𝑍2 mod p nên nên chi phí cho nó là M + D = M + I (do D = I)
Do số điểm n của đường cong và các giá trị u1 và u2 xấp xỉ với p nên chi phí tổng cộng cho thuật toán kiểm tra, ký hiệu 𝑇𝐸𝐶𝐷𝑆𝐴𝑉𝑒𝑟 là:
Công thức 1.8:
𝑇𝐸𝐶𝐷𝑆𝐴𝑉𝑒𝑟 ≈ (22.𝑙𝑒𝑛(𝑝)
3 + 16 𝑙𝑒𝑛(𝑝) + 19) 𝑀 + 2 𝐼 (1.8)
1.4.2 Đánh giá chi phí kiểm tra của một số lược đồ chữ ký
Mục tiêu của luận án là nghiên cứu phát triển các lược đồ chữ ký có chi phí thời gian kiểm tra chữ ký thấp Do đó, tính toán và đánh giá chi phí kiểm tra chữ ký của các hệ chữ ký số đã đưa thành chuẩn là một căn cứ toán học quan trọng của luận án Để thực hiện đánh giá này, việc tính toán chi phí kiểm tra chữ ký của các hệ chữ ký số đã đưa thành chuẩn cần sử dụng các tham số đầu vào có mức an toàn tương đương Bảng 1.3 cho biết mức độ an toàn và kích thước khóa (đơn vị: bits), được trích dẫn từ chuẩn FIP 186-2
[12], NIST 800-56 [13] và được Darrel Hankerson trình bày trong [9]
Bảng 1.3- Kích thước khóa RSA, DL và EC và mức độ an toàn
Sercurity level (bits)
80 (SKIPJACK)
112 (Triple-DES)
128 (AES-Small)
192 (AES-Medium)
256 (AES-Large)
DL parameter q
RSA modulus n
Luận án tiến hành đánh giá chi phí thời gian kiểm tra của các lược đồ chữ
ký Rabin, RSA, DSA và ECDSA dựa trên tính toán số các phép tính số học cần thực hiện ở các bước trong thuật toán kiểm tra chữ ký của các hệ chữ ký
số này thông qua việc chứng minh mệnh đề 1.1 sau đây:
Mệnh đề 1.1 Trong toàn bộ các lược đồ chữ ký được ban hành thành
chuẩn với cùng bộ tham số đầu vào cho bởi bảng 1.3 thì các lược đồ dòng Rabin là có chi phí kiểm tra thấp nhất
Trang 29Bảng 1.4- Thuật toán kiểm tra RSA, Rabin và DSA
Thuật toán 1.3 – Thuật toán
kiểm tra chữ ký RSA
INPUT: khóa công khai (n,e),
1 𝑢 ← 𝐶𝑜𝑑𝑒(𝐻𝑎𝑠ℎ(𝑚||𝑅));
2 Chữ ký (s,R) lên thông báo M là của người có khóa công khai (n,b) là hợp lệ s là nghiệm của x(x + b) = u (mod n)
Thuật toán 1.9 – Thuật toán kiểm tra chữ ký DSA
INPUT: Các tham số hệ thống (p,q,g), khóa công khai y, văn bản m, chữ ký (r,s)
OUTPUT: Chữ ký hợp lệ hoặc không hợp lệ
1 Kiểm tra r và s có phải là những số nguyên trong khoảng [1,q-1] Nếu không trả về return(“Chữ ký không hợp lệ”)
Trang 30− Chi phí kiểm tra của lược đồ Rabin thấp hơn lược đồ RSA:
Thật vậy, để so sánh ta bỏ qua các chi phí tính toán giống nhau ở cả hai thuật toán Thực chất để kiểm tra s có hợp lệ hay không thì cả hai thuật toán đều cần thực hiện rút gọn lũy thừa se theo modulo n ở bước 2 Trong thuật toán 1.3 của lược đồ RSA, số mũ e phải thỏa mãn 1 < 𝑒 < 𝜙(𝑛) và gcd(𝑒, 𝜙(𝑛)) = 1 Dễ thấy 𝜙(𝑛) là số chẵn, do đó e phải lớn hơn hoặc bằng
3 Thực hiện bước 2 theo phương pháp bình phương-nhân thì
• Cần 𝑙𝑒𝑛(𝑒) − 1 phép bình phương
• Cần 𝑤𝑡(𝑒) − 1 phép nhân
Theo phương pháp của Karatsuba-Ofman thì chi phí phép nhân hai số nguyên và chi phí cho phép bình phương hai số nguyên lớn là xấp xỉ nhau Dẫn đến chúng ta có thể ước lượng số phép bình phương (hoặc phép nhân)
mà thuật toán 1.3 thực hiện, ký hiệu 𝑇𝑅𝑆𝐴𝑉𝑒𝑟 là:
𝑇𝑅𝑆𝐴𝑉𝑒𝑟 ≈ 𝑙𝑒𝑛(𝑒) + 𝑤𝑡(𝑒) − 2
Với điều kiện 𝑒 ≥ 3 thì hiển nhiên 𝑇𝑅𝑆𝐴𝑉𝑒𝑟 > 1
Trong khi đó, trong lược đồ Rabin thì e=2 và ở bước 2 của thuật toán 1.5 chỉ cần thực hiện một phép bình phương Vì vậy chi phí kiểm tra của lược
đồ Rabin thấp hơn lược đồ RSA
− Chi phí kiểm tra của lược đồ Rabin thấp hơn lược đồ DSA:
Trước hết, ta xét thuật toán tạo chữ ký DSA (thuật toán 1.9) Để so sánh chi phí kiểm tra của lược đồ Rabin và DSA, không làm thay đổi kết luận, chúng ta bỏ qua các tính toán ở các bước khác của thuật toán 1.9 mà chỉ tập trung vào bước 5 Tại bước 5, thuật toán thực hiện hai phép lũy thừa Mỗi phép lũy thừa 𝑘 cần thực hiện 𝑙𝑒𝑛(𝑘) + 𝑤𝑡(𝑘) − 2 phép bình phương (hoặc phép nhân) Như vậy, chúng ta có thể ước lượng số phép bình phương (hoặc phép nhân) mà thuật toán 1.9 thực hiện ở bước 5, ký hiệu 𝑇𝐷𝑆𝐴𝑉𝑒𝑟 là:
𝑇𝐷𝑆𝐴𝑉𝑒𝑟 ≈ 2(𝑙𝑒𝑛(𝑘) + 𝑤𝑡(𝑘) − 2)
Trang 31Lưu ý rằng, bước 5 của thuật toán 1.9 thực hiện lũy thừa theo modulo p, trong khi lược đồ Rabin thực hiện bình phương theo modulo n Tuy nhiên theo tiêu chuẩn tham số an toàn được qui định trong các chuẩn như FIPS 186-4 [8] thì tham số p của DSA có độ dài bằng tham số n của lược đồ RSA, Rabin Như vậy phép lũy thừa của cả hai thuật toán 1.5 và 1.9 là cùng modulo
Như đã trình bày ở trên, trong lược đồ Rabin thuật toán 1.5 chỉ cần thực hiện một phép bình phương, trong khi số phép bình phương của thuật toán 1.9 hiển nhiên lớn hơn 1 Vì vậy, chi phí kiểm tra của lược đồ Rabin thấp hơn lược đồ DSA
Tuy nhiên cần lưu ý rằng mặc dù với cùng độ an toàn, hai modulo dùng cho hai lược đồ này là cùng kích thước, nhưng DSA có thể dùng các modulo đặc biệt, chẳng hạn có dạng 𝑝 = 2𝑘 − 𝑎 với a nhỏ và khi này phép nhân modulo p có thể coi là xấp xỉ phép nhân hai số k-bít, trong khi phép nhân cho Rabin là cỡ 3 lần phép nhân hai số k-bít Nếu ta coi số phép nhân là đơn
vị tính toán thì thời gian kiểm tra chữ ký của lược đồ chữ ký DSA là
𝑇𝐷𝑆𝐴𝑉𝑒𝑟 ≈ 2(𝑙𝑒𝑛(𝑘) + 𝑤𝑡(𝑘) − 2) phép nhân hai số k-bít, trong khi lược đồ Rabin là 3 phép nhân hai số k-bít Dễ dàng thấy rằng chi phí kiểm tra của lược đồ Rabin thấp hơn rất nhiều so với lược đồ DSA
− Chi phí kiểm tra của lược đồ Rabin thấp hơn lược đồ ECDSA:
Thật vậy, từ thuật toán kiểm tra (1.5), chữ ký (s,R) lên thông báo M của người có khóa công khai (n,b) là hợp lệ khi và chỉ khi s là nghiệm của phương trình (1.2) là x(x + b) = u (mod n)
Để kiểm tra s là nghiệm của (1.2), cần thực hiện: một phép cộng, một phép nhân rút gọn hai số nguyên theo modulo n và một phép so sánh kết quả phép nhân rút gọn đó với u Không làm ảnh hưởng kết quả, ta có thể bỏ qua chi phí phép cộng và phép so sánh, khi đó từ công thức (1.7) suy ra chi phí kiểm tra chữ ký của lược đồ Rabin, ký hiệu 𝑇𝑅𝑎𝑏𝑖𝑛𝑉𝑒𝑟, ta có:
Trang 32𝑇𝑅𝑎𝑏𝑖𝑛𝑉𝑒𝑟 ≈ 3 𝑀(𝑙𝑒𝑛(𝑛)) (1.9)
Từ công thức (1.8) ta có:
𝑇𝐸𝐶𝐷𝑆𝐴𝑉𝑒𝑟 ≈ (22 𝑙𝑒𝑛(𝑝)
3 + 16 𝑙𝑒𝑛(𝑝) + 19) 𝑀(𝑙𝑒𝑛(𝑝)) + 2 𝐼(𝑙𝑒𝑛(𝑝)) Không ảnh hưởng kết quả cần chứng minh 𝑇𝐸𝐶𝐷𝑆𝐴𝑉𝑒𝑟 > 𝑇𝑅𝑎𝑏𝑖𝑛𝑉𝑒𝑟, ta bỏ qua đại lượng 2.I(len(p)) trong công thức trên Khi đó chi phí kiểm tra lược
đồ chữ ký ECDSA là:
𝑇𝐸𝐶𝐷𝑆𝐴𝑉𝑒𝑟 ≈ (22.𝑙𝑒𝑛(𝑝)
3 + 16 𝑙𝑒𝑛(𝑝) + 19) 𝑀(𝑙𝑒𝑛(𝑝)) (1.10) Theo phương pháp của Karatsuba-Ofman [9, p 51] thì phép nhân hai số nguyên 2.k-bít cần đến 3 phép nhân hai số k-bít và chi phí cho phép nhân là:
𝑇𝐸𝐶𝐷𝑆𝐴𝑉𝑒𝑟/𝑇𝑅𝑎𝑏𝑖𝑛𝑉𝑒𝑟 theo công thức (1.11) Kết quả tính toán được thể hiện trong bảng 1.5
Trang 33Bảng 1.5- Chi phí thời gian thuật toán kiểm tra Rabin và ECDSA
Như vậy, trong toàn bộ các lược đồ chữ ký được ban hành thành chuẩn với cùng mức an toàn thì các lược đồ dòng Rabin là có chi phí kiểm tra thấp
nhất Mệnh đề 1.1 đã được chứng minh
1.5 Vấn đề thực tiễn và hướng nghiên cứu của đề tài luận án
Trong phần 1.4, ở mệnh đề 1.1, chúng ta đã kết luận: “Trong toàn bộ các lược đồ chữ ký được ban hành thành chuẩn với cùng bộ tham số đầu vào cho bởi bảng 1.3 thì các lược đồ dòng Rabin là có chi phí kiểm tra thấp nhất”
Mục tiêu của luận án là nghiên cứu phát triển các lược đồ chữ ký có chi phí thời gian kiểm tra chữ ký thấp nhằm phục vụ cho các giao dịch điện tử dạng “nhiều-một” Kết luận trên định hướng nghiên cứu của luận án tập trung cải tiến và phát triển lược đồ Rabin và RSA với số mũ e nhỏ
Nghiên cứu về lược đồ Rabin, ta thấy kể từ khi ra đời lược đồ này đã có hàng loạt những nghiên cứu cải biên đáng kể theo một số định hướng: mở rộng các modulo dùng được, cải tiến thuật toán tạo chữ ký, mở rộng các trường hợp đối với số mũ kiểm tra e (e=3),
Theo hướng mở rộng các modulo dùng được trong lược đồ Rabin phải kể đến các công bố của L Harn và T Kiesler [14], của Kaoru Kurosawa và
Trang 34Wakaha Ogata [15], của M Ela - M Piva - D Schipani [16], trong đó phải
kể đến đóng góp của M Ela, M Piva và D Schipani đưa ra năm 2013 đã xây dựng hệ mật kiểu Rabin với modulo n là tích của hai số nguyên tố bất
kỳ bởi việc dùng tổng Dedekind thay cho kí hiệu Jacobi Trong công bố này, các tác giả đã đưa ra các kết quả toán học sau đây là cơ sở cho các lược đồ
đề xuất:
− Nếu như với các số Blum n thì với mọi 𝑚 ∈ 𝑍𝑛∗, trong tập căn bậc hai
𝑐 = 𝑚2 𝑚𝑜𝑑 𝑛 (gồm đúng 4 phần tử khác nhau) tồn tại duy nhất m’=m (mod 2) và (𝒎′
𝒏) = (𝒎
𝒏), ngược lại điều trên không đúng
− Tổng Dedekind của m theo n, ký hiệu là s(m,n) có kết quả là: với mọi n=p.q với p, q là hai số nguyên tố lẻ, khi đó với mọi 𝒎 ∈ 𝒁𝒏∗ thì trong tập căn bậc hai của 𝐜 = 𝐦𝟐 𝐦𝐨𝐝 𝐧 tồn tại duy nhất m’ thỏa mãn điều
kiện: m’=m (mod 2) và s(m’,n)=s(m,n) (mod 2)
Như vậy cho đến trước năm 2013 hệ mật Rabin chỉ dùng được với các modulo n là số Blum Với các kết quả này, các tác giả đã xây dựng được hệ mật kiểu Rabin nhưng với n là tích của hai số nguyên tố bất kì như hệ RSA
và dùng tổng Dedekin thay cho việc tính kí hiệu Jacobi Đây là đóng góp rất sâu sắc của công bố này
Theo hướng cải tiến thuật toán tạo chữ ký của lược đồ Rabin, Williams
đã đề xuất lược đồ Rabin-Williams [4] Lược đồ này giảm chỉ còn một phép tính kí hiệu Jacobi trong thuật toán tạo chữ ký trong khi lược đồ Rabin cần đến 4 phép tính Jacobi Trong công bố năm 1989, L Harn và T Kiesler [14]
đã kết hợp công thức tính căn và kí hiệu Jacobi để cải tiến thuật toán tạo chữ
ký Rabin M Ela - M Piva - D Schipani [16] dùng tổng Dedekin thay cho
kí hiệu Jacobi trong giải thuật toán tạo chữ ký
Theo hướng mở rộng số mũ kiểm tra e, cụ thể thay số mũ kiểm tra từ 2 thành 3 có các nghiên cứu của Williams [17], J H Loxton, David S P Khoo,
Trang 35Gregory J Bird và Jennifer Seberry đưa ra năm 1992 [18], công bố của R Scheidler [19] đưa ra năm 1998,…
Trên cơ sở nghiên cứu các công bố khoa học liên quan, luận án xác định hai hướng nghiên cứu:
• Hướng thứ nhất: nghiên cứu cải tiến và phát triển lược đồ Rabin Theo hướng này, luận án cải tiến chi phí tính toán cho việc tạo chữ ký bằng cách không cần tính giá trị ký hiệu Jacobi Đồng thời phát triển chữ
ký số Rabin với số mũ kiểm tra e=3
• Hướng thứ 2: Kết hợp nguyên lý thiết kế của Rabin và RSA để đề xuất một số lược đồ chữ ký với số mũ e nhỏ, cụ thể lấy e=3
Với số mũ kiểm tra e, có thể chia các lược đồ chữ ký họ RSA thành ba loại:
• Loại 1: lược đồ chữ ký với modulo n=p.q và 𝑔𝑐𝑑(𝑒, 𝜙(𝑛)) = 1, tức
là e nguyên tố cùng nhau với cả (p-1) và (q-1)
• Loại 2: lược đồ chữ ký với modulo n=p.q trong đó (p-1) và (q-1) đều
là bội của e
• Loại 3: lược đồ chữ ký với modulo n=p.q và (p-1) là bội của e, còn
(q-1) nguyên tố cùng nhau với e
Dễ thấy lược đồ chữ ký RSA là lược đồ loại 1 do số mũ e thỏa mãn 𝑔𝑐𝑑(𝑒, 𝜙(𝑛)) = 1 Lược đồ chữ ký Rabin là lược đồ loại 2 vì e=2 là ước của
cả (p-1) và (q-1)
Luận án nghiên cứu đề xuất lược đồ chữ ký số mới loại 2 và loại 3 ở trên trong trường hợp số mũ e nhỏ Ở chương 2, luận án đề xuất lược đồ loại 2, tức là (p-1) và (q-1) đều là bội của e với hai trường hợp e=2 và e=3 Ở chương
3, luận án đề xuất lược đồ loại 3, kết hợp Rabin và RSA, tức là số mũ e thỏa mãn (p-1) là bội của e, còn (q-1) nguyên tố cùng nhau với e với lựa chọn e nhỏ (e=3)
Trang 361.6 Kết luận chương 1
Trong chương này, luận án đã trình bày các khái niệm và thuật ngữ cơ bản liên quan trực tiếp đến vấn đề nghiên cứu của luận án Bên cạnh các khái niệm và thuật ngữ cơ bản, chương 1 cũng trình bày một cách hệ thống về một số hệ chữ ký số khóa công khai gồm chữ ký RSA, chữ ký Rabin, chữ ký logarithm rời rạc DSA và và lược đồ chữ ký trên đường cong Elliptic ECDSA
Có thể nói, phần quan trọng nhất của chương này là luận án đã đưa ra mệnh đề 1.1 và chứng minh được rằng: trong các lược đồ chữ ký được ban hành thành chuẩn với cùng mức an toàn thì các lược đồ dòng Rabin là có chi phí kiểm tra thấp nhất Đây là căn cứ quan trọng nhất, là cơ sở định hướng cho các nghiên cứu tiếp theo của luận án khi đề xuất các lược đồ chữ ký cho các trong các giao dịch điện tử dạng “nhiều-một”
Trên cơ sở phân tích, tổng hợp các nghiên cứu tiêu biểu, chương 1 chỉ ra hướng nghiên cứu của luận án là phát triển một số lược đồ chữ ký số dựa trên hệ mật Rabin và RSA
Trang 37CHƯƠNG 2 CẢI TIẾN VÀ PHÁT TRIỂN LƯỢC ĐỒ CHỮ KÝ RABIN
2.1 Mở đầu
Trong lược đồ chữ ký RSA, tham số e cần thỏa mãn điều kiện
gcd(e, 𝜙(𝑛))=1 Dễ thấy với p, q là hai số nguyên tố lẻ và 𝑛 = 𝑝 × 𝑞 thì
𝜙(𝑛) = (𝑝 − 1) × (𝑞 − 1) là số chẵn, do đó e là số lẻ Cùng dựa trên bài toán phân tích số, Rabin đã lựa chọn tham số e=2, tức là e là số chẵn và là ước của cả p-1 và q-1 Sự lựa chọn này đã làm cho lược đồ chữ ký Rabin có
ưu điểm nổi trội là chi phí kiểm tra chữ ký thấp, chỉ cần một phép bình phương modulo Với ưu điểm nổi trội này, chữ ký Rabin rất phù hợp cho các giao dịch điện tử kiểu “nhiều-một”, nơi mà cần xác thực chữ ký với số lượng lớn Nghiên cứu cải tiến và phát triển chữ ký số Rabin, trong chương này luận án đề xuất hai lược đồ chữ ký số mới cải tiến lược đồ Rabin và một lược
đồ phát triển lược đồ Rabin với số mũ kiểm tra e=3 Các lược đồ này có tham
số p, q đều thỏa mãn tính chất như lược đồ Rabin, tức là e là ước của cả p-1
và q-1
Năm 1980, Williams đưa ra một cải tiến lược đồ Rabin, viết tắt là RW bởi tên chung của hai ông [4] Nếu lược đồ Rabin cần đến 4 phép tính ký hiệu Jacobi trong thuật toán tạo chữ ký, thì trong RW, Williams đã cải tiến
để chỉ cần một phép tính ký hiệu Jacobi Lược đồ RW đã được đưa vào các chuẩn ISO/IEC 9796 [5] Tiếp cận theo hướng này, luận án đề xuất lược đồ thứ nhất, ký hiệu là RW0, cải tiến thuật toán tạo chữ ký của lược đồ RW mà không cần đến việc tính ký hiệu Jacobi Tiếp sau đó, luận án đề xuất lược đồ thứ hai, ký hiệu là R0, trong đó chi phí kiểm tra tăng lên không đáng kể so với lược đồ gốc, còn chi phí cho thuật toán tạo chữ ký giảm đi đáng kể do không cần đến việc tính ký hiệu Jacobi Cuối cùng, với hướng phát triển lược
đồ Rabin, luận án đề xuất lược đồ chữ ký PCRS có tham số e=3 và e là ước của cả p-1 và q-1 Lược đồ này là lược đồ xác suất có thuật toán kiểm tra cần
Trang 38một phép lũy thừa ba modulo và thuật toán tạo chữ ký đảm bảo hiệu quả tính toán Trước khi đưa ra các lược đồ đề xuất, luận án trình bày một số kiến thức toán học cơ sở liên quan trực tiếp đến lược đồ chữ ký mới của chương này
2.2 Cơ sở toán học
Trong phần này luận án tóm lược và sắp xếp lại một số kết quả trong lý thuyết số được trích từ tài liệu [11] liên quan đến nội dung cần giải quyết của chương hai
2.2.1 Thặng dư bậc hai và việc khai căn bậc hai trên trường GF(p) với
p nguyên tố
a) Thặng dư bậc hai:
Định nghĩa 2.1 Với hai số nguyên tố cùng nhau m > 0 và a, ta nói a là
thặng dư bậc hai (mod m) khi và chỉ khi phương trình:
có nghiệm Ngược lại a gọi là không thặng dư bậc hai (mod m)
Chú ý rằng thuật ngữ thặng dư bậc hai và không thặng dư bậc hai chỉ dùng khi gcd(a, m) = 1 Chẳng hạn với a = 0 thì (2.1) luôn có nghiệm với mọi m nhưng nó không được gọi là thăng dư bậc hai (mod m) Còn với giá trị a = 3 (mod 9) thì (2.1) vô nghiệm nhưng giá trị này không gọi là không thăng dư (mod 9) Khi modulo là số nguyên tố thì trường hợp không nguyên
tố cùng nhau với modulo là tương đương với đồng dư với 0, chính vì vậy ta đưa ra được định nghĩa sau
Định nghĩa 2.2 Cho p là số nguyên tố lẻ Khi đó với mỗi số nguyên a,
Trang 39Như vậy ký hiệu Legendre là dấu hiệu để nhận dạng giá trị a ≠ 0 (mod p)
có là số chính phương (mod p) hay không Tiếp đến chúng ta đưa vào khái niệm ký hiệu Jacobi trong định nghĩa sau
Định nghĩa 2.3 Cho số tự nhiên m có phân tích ra thừa số nguyên tố là
𝑚 = ∏ 𝑝𝑖𝑡𝑖
𝑖=1 𝑘
Khi đó với mỗi số nguyên a, ký hiệu Jacobi (a
m) được xác định như sau (𝑎
𝑚) = ∏ (𝑎
𝑝𝑖)𝑡𝑖𝑖=1 𝑘
Chú ý rằng ký hiệu Jacobi (𝑚𝑎) không đủ để đặc trưng cho tính chính
phương của a theo modulo m
Tính chất cơ bản của các ký hiệu Legendre và Jacobi được cho trong định
Trang 40b) Thuật toán khai căn bậc hai theo modulo p là số nguyên tố lẻ:
Thuật toán sau đây do A Tonelli công bố năm 1891 cho phép tìm một căn bậc hai của a (mod p) với (a
p) = 1
Thuật toán 2.1: Tìm căn bậc hai modulo nguyên tố
INPUT: số nguyên lẻ 𝑝 và số nguyên a với (𝑎
𝑝) = 1 OUTPUT: giá trị x thỏa mãn 𝑥2 ≡ 𝑎 (𝑚𝑜𝑑 𝑝)