Mật mã học khóa công khai tạo ra chữ ký số và ứng dụng vào các tài liệu. Các hệ mã hóa cùng với hàm băm mật mã học một chiều chính là những công cụ chính trong việc tạo ra chữ ký số điện tử.Hiện nay, khi mà Chính phủ điện tử và Thƣơng mại điện tử đã trở thành xu hƣớng tất yếu của các quốc gia trên thế giới , trong đó có Việt Nam, thì chữ ký số không thể thiếu đƣợc và ngày càng trở nên quan trọng. Các mô hình ứng dụng chữ ký số cho phép đáp ứng tốt các yêu cầu về chứng thực nguồn gốc hay hiệu lực của thông tin đƣợc tạo ra bởi những thực thể có tính độc lập. Nhƣng trong trƣờng hợp thông tin đƣợc tạo ra từ các thành viên hay bộ phận của một tổ chức thì nguồn gốc hay hiệu lực thông tin ở cấp độ thành viên hay bộ phận lại không đƣợc chứng thực, trong khi, các yêu cầu chứng thực đó lại ngày càng trở nên thực tế và cần thiết. Trƣớc những cơ sở đó, việc ra đời các mô hình chữ ký bội là một tất yếu.Trong tƣơng lai, Chính phủ điện tử và Thƣơng mại điện tử cùng với hạ tầng công nghệ thông tin và truyền thông phát triển mạnh mẽ hơn thì nhu cầu ứng dụng chữ ký bội trong các dịch vụ chứng thực điện tử sẽ càng cần thiết hơn.Trong khoá luận này, em tập trung vào sơ đồ chữ ký bội RSA , chữ ký bội trên đƣờng cong Elliptic và ứng dụng của chúng, sau đó là phần thử nghiệm chƣơng trình. Cuối cùng là phần kết luận và tài liệu tham khảo.Mặc dù đã cố gắng hết sức, nhưng vẫn không sao tránh khỏi sai sót, vì vậy rất mongđƣợc sự góp ý phê bình.
Trang 1MỤC LỤC
LỜI MỞ ĐẦU 1
Chương 1 CÁC KHÁI NIỆM CƠ BẢN 2
1.1 KHÁI NIỆM TRONG SỐ HỌC 2
1.1.1 Ước chung lớn nhất và bội chung nhỏ nhất .2
1.1.1.1 Khái niệm 2
1.1.1.2 Tính chất 2
1.1.2 Quan hệ đồng dư 3
1.1.2.1 Khái niệm 3
1.1.2.2 Tính chất 3
1.1.3 Số nguyên tố 4
1.1.3.1 Khái niệm 4
1.1.3.2 Định lý 4
1.1 KHÁI NIỆM TRONG ĐẠI SỐ 5
1.2.1 Nhóm 5
1.2.1.1 Khái niệm 5
1.2.1.2 Nhóm Cyclic 6
1.2.1.3 Nhóm(Zn *, phép nhân mod n) 6
1.2.1.4 Phần tử nghịch đảo đối với phép nhân 7
1.2.2 Vành 7
1.2.3 Trường 8
1.2.4 Không gian vector 11
Trang 21.3 KHÁI NIỆM TRONG MẬT MÃ 12
1.3.1 Một số khái niệm 12
1.3.1.1 Khái niệm Mã hóa dữ liệu 12
1.3.1.2 Lược đồ chữ ký số 12
1.3.1.3 Hàm băm 13
1.3.2 Một số thuật ngữ liên quan 14
1.4 GIỚI THIỆU VỀ CHỮ KÝ SỐ 15
1.4.1 Quy trình tạo và kiểm tra một chữ ký số 15
1.4.1.1 Quy trình tạo ra một chữ ký số: 15
1.4.1.2 Quy trình kiểm tra một chữ ký số: .16
1.4.1.3 So sánh giữa các phương pháp mã hóa sử dụng khóa công khai 17
1.4.2 Chữ ký bội 19
1.4.2.1 Chữ ký nối tiếp 19
1.4.2.2 Chữ ký song song 19
Chương 2 CHỮ KÝ BỘI DỰA TRÊN HỆ MẬT RSA 20
2.1 HỆ MẬT RSA 20
2.1.1 Thuật toán hình thành cặp khóa 20
2.1.2 Thuật toán mã hóa khóa công khai bằng hệ mật RSA 20
2.1.2.1 Thuật toán mã hóa 20
2.1.2.2 Thuật toán giải mã 20
2.1.3 Thuật toán chữ ký số 20
2.1.3.1 Thuật toán hình thành chữ ký 20
2.1.3.2 Thuật toán kiểm tra chữ ký 21
2.1.4 Độ an toàn của hệ mã hóa RSA 21
Trang 32.2 LƯỢC ĐỒ CHỮ KÝ CƠ SỞ DỰA TRÊN HỆ MẬT RSA 21
2.2.1 Lược đồ chữ ký cơ sở 21
2.2.1.1 Hình thành tham số hệ thống và khóa 21
2.2.1.2 Tạo chữ ký và kiểm tra chữ ký 22
2.2.2 Tính đúng đắn của lược đồ chữ ký cơ sở 23
2.2.3 Mức độ an toàn của lược đồ chữ ký cơ sở 24
2.3 CHỮ KÝ BỘI TRÊN HỆ MẬT RSA 24
2.3.1 Lược đồ chữ ký bội nối tiếp 24
2.3.1.1 Hình thành tham số hệ thống và khóa 24
2.3.1.2 Chứng nhận và kiểm tra tính hợp pháp của đối tượng ký 25
2.3.1.3 Hình thành và kiểm tra chữ ký bội nối tiếp 26
2.3.2 Lược đồ chữ ký bội song song 28
2.3.2.1 Hình thành các tham số hệ thống và khóa 28
2.3.2.2 Chứng nhận và kiểm tra tính hợp pháp của các đối tượng ký 28
2.3.2.3 Hình thành và kiểm tra chữ ký bội song song 28
Chương 3 CHỮ KÝ BỘI TRÊN ĐƯỜNG CONG ELLIPTIC 30
3.1 CÁC KHÁI NIỆM VỀ ĐƯỜNG CONG ELLIPTIC 30
3.1.1 Công thức Weiertrasse và đường cong Elliptic 30
3.1.2 Các phép toán trên đường cong Elliptic 31
3.1.3 Bài toán Logarith rời rạc trên đường cong Elliptic (ECDLP) 33
3.2 HỆ MẬT TRÊN ĐƯỜNG CONG ELLIPTIC 34
3.2.1 Cách nhúng bản rõ lên đường cong Elliptic 34
3.2.1.1 Nhúng (Imbeding) 34
3.2.1.2 Mặt nạ (Mask) 34
Trang 43.2.2 Các hệ mật trên đường cong Elliptic (ECC) 35
3.2.2.1 Hệ mã hóa “tựa” Elgamal 35
3.2.2.2 Hệ mã hóa Menezes-Vantone 35
3.2.3 Trao đổi khóa Diffie – Hellman trên đường cong Elliptic 36
3.2.3.1 Mô hình trao đổi khóa Diffie – Hellman .36
3.2.3.2 Mô hình trao đổi khóa Elliptic Curve Diffie – Hellman 36
3.2.4 Lựa chọn đường cong Elliptic phù hợp 36
3.3 CHỮ KÝ BỘI MÙ TRÊN ĐƯỜNG CONG ELLIPTIC 40
3.3.1 Sơ đồ chữ ký ECDSA 40
3.3.1.1 Sinh khóa: 40
3.3.1.2 Ký trên bản rõ m: 40
3.3.1.3 Kiểm tra chữ ký: 41
3.3.1.4 Chứng minh 41
3.3.2 Sơ đồ chữ ký mù Harn trên ECC 41
3.3.2.1 Sinh khóa 41
3.3.2.2 Ký mù 42
3.3.2.3 Chứng minh 42
3.3.3 Sơ đồ chữ ký số bội trên đường cong Elliptic 42
3.3.3.1 Khởi tạo tham số công khai 43
3.3.3.2 Lược đồ chữ ký bội song song 44
3.3.3.3 Lược đồ chữ ký bội tuần tự 47
3.3.4 Sơ đồ chứ ký bội mù Harn trên ECC .50
3.3.4.1 Sinh khóa 50
3.3.4.2 Ký mù trên m 50
3.3.4.3 Chứng minh 50
Trang 5Chương 4 ỨNG DỤNG VÀ THỰC NGHIỆM 52
4.1 ỨNG DỤNG CHỮ KÝ BỘI TRONG KÝ KẾT HỢP ĐỒNG 52
4.1.1 Bài toán bảo đảm tính toàn vẹn thông tin hợp đồng (biên bản) 53
4.1.2 Bảo đảm tính xác thực 55
4.1.3 Chống chối bỏ hợp đồng giao dịch 57
4.2 THỬ NGHIỆM CHƯƠNG TRÌNH 58
4.2.1 CẤU HÌNH HỆ THỐNG: PHẦN CỨNG, PHẦN MỀM .58
4.2.1.1 Cấu hình phần cứng 58
4.2.1.2 Cấu hình phần mềm 58
4.2.2 CÁC THÀNH PHẦN TRONG CHƯƠNG TRÌNH .58
4.2.1.2 Cặp khóa bí mật công khai của CA 58
4.2.1.2 Cặp khóa bí mật công khai của những người ký 59
4.1.2.3 Sinh tham số hệ thống 60
4.2.3 CHƯƠNG TRÌNH 61
4.2.4 HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH 62
4.2.4.1 Sinh tham số hệ thống 62
4.2.4.2 Tạo chữ ký bội 62
4.2.4.3 Kiểm tra chữ ký bội 62
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
Trang 6BẢNG CHỮ VIẾT TẮT, KÝ HIỆU
gcd(a, b) Ước số chung lớn nhất của a và b
lmc(a, b) Bội số chung nhỏ nhất của a và b
|| Toán tử nối (trộn) 2 xâu
a|b a là ước số của b
IDi Thông tin nhận dạng thực thể cuối Ui
M Thông điệp dữ liệu
xi Khóa bí mật của thực thể cuối Ui
yi Khóa công khai của thực thể cuối Ui
CA Cơ quan chứng thực
#E Số phần tử của đường cong Elliptic
ECC Hệ mật trên đường cong Elliptic
DLP Bài toán Logarith rời rạc
ECDSA Thuật toán ký trên đường cong Elliptic
ECDLP Bài toán Logarith rời rạc trên đường cong EllipticECDH Trao đổi khóa Elliptic Curve Difie - Hellman
sig k Thuật toán ký số
ver k Thuật toán kiểm tra chữ ký số
Trang 7DANH MỤC HÌNH ẢNH
Hình 1.1 Các chức năng của hệ thống CA 14
Hình 1.2 Quy trình ký điện tử 15
Hình 1.3 Quy trình kiểm tra chữ số ký số 16
Hình 3.1 Phép cộng hai điểm P + Q = R 31
Hình 3.2 Phép cộng P với chình nó P+P = 2P = R 32
Hình 4.1 Mẫu biên bản thỏa thuận kinh doanh .53
Hình 4.2 Mẫu phiếu xuất kho 54
Hình 4.3 Cấu trúc cặp khóa bí mật công khai (d, e) của CA 58
Hình 4.4 Khóa bí mật công khai của những người ký 59
Hình 4.5 Sinh tham số hệ thống 60
Hình 4.6 Giao diện tạo tham số hệ thống .61
Hình 4.7 Giao diện tạo chữ ký bội 61
Hình 4.8 Giao diện kiểm tra chữ ký bội 62
Trang 8LỜI MỞ ĐẦU
Mật mã học khóa công khai tạo ra chữ ký số và ứng dụng vào các tài liệu Các hệ
mã hóa cùng với hàm băm mật mã học một chiều chính là những công cụ chính trongviệc tạo ra chữ ký số điện tử
Hiện nay, khi mà Chính phủ điện tử và Thương mại điện tử đã trở thành xu hướngtất yếu của các quốc gia trên thế giới , trong đó có Việt Nam, thì chữ ký số không thểthiếu được và ngày càng trở nên quan trọng Các mô hình ứng dụng chữ ký số chophép đáp ứng tốt các yêu cầu về chứng thực nguồn gốc hay hiệu lực của thông tinđược tạo ra bởi những thực thể có tính độc lập Nhưng trong trường hợp thông tinđược tạo ra từ các thành viên hay bộ phận của một tổ chức thì nguồn gốc hay hiệu lựcthông tin ở cấp độ thành viên hay bộ phận lại không được chứng thực, trong khi, cácyêu cầu chứng thực đó lại ngày càng trở nên thực tế và cần thiết Trước những cơ sở đó,việc ra đời các mô hình chữ ký bội là một tất yếu
Trong tương lai, Chính phủ điện tử và Thương mại điện tử cùng với hạ tầng côngnghệ thông tin và truyền thông phát triển mạnh mẽ hơn thì nhu cầu ứng dụng chữ kýbội trong các dịch vụ chứng thực điện tử sẽ càng cần thiết hơn
Trong khoá luận này, em tập trung vào sơ đồ chữ ký bội RSA , chữ ký bội trên đườngcong Elliptic và ứng dụng của chúng, sau đó là phần thử nghiệm chương trình Cuối cùng
là phần kết luận và tài liệu tham khảo
Mặc dù đã cố gắng hết sức, nhưng vẫn không sao tránh khỏi sai sót, vì vậy rất mongđược sự góp ý phê bình
Trang 9Một ƣớc chung d >0 của các số nguyên a1, a2, …, an , trong đó mọi ƣớc chung của
a1, a2, …, an đều là ƣớc của d, thì d đƣợc gọi là ước chung lớn nhất của a1, a2, …, an
Ký hiệu d = gcd(a1, a2, …, an) hay d = UCLN(a1, a2, …, an)
Nếu gcd(a1, a2, …, an) = 1, thì a1, a2, …, an đƣợc gọi là nguyên tố cùng nhau.
Một bội chung m >0 của các số nguyên a1, a2, …, an , trong đó mọi bội chung của
a1, a2, …, an đều là bội của m, thì m đƣợc gọi là bội chung nhỏ nhất của a1, a2, …, an
Ký hiệu m = lcm(a1, a2, …, an) hay m = BCNN(a1, a2, …, an)
Ví dụ:
Cho a = 12, b = 15, gcd(12,15) = 3, lcm(12,15) = 60.
Hai số 8 và 13 là nguyên tố cùng nhau, vì gcd(8,13) = 1
1.1.1.2 Tính chất
1 d = gcd(a1, a2, …, an) tồn tại x1, x2, …, xn sao cho: d = a1x1 + a2x2+…+ anxn
a1, a2, …, an nguyên tố cùng nhau⇔tồn tại x1, x2, …, xn sao cho:
Trang 101.1.2 Quan hệ đồng dư
1.1.2.1 Khái niệm
Cho các số nguyên a, b, m (m > 0) Ta nói rằng a và b “đồng dư” với nhau theo
modulo m, nếu chia a và b cho m, ta nhận được cùng một số dư.
Ký hiệu: a b (mod m)
Ví dụ:
17 5 ( mod 3) vì chia 17 và 5 cho 3, được cùng số dư là 2
1.1.2.2 Tính chất
1/ Quan hệ “đồng dư” là quan hệ tương đương trong Z:
Với mọi số nguyên dương m ta có:
a (mod m) với mọi a ; (tính chất phản xạ)
a (mod m) thì b (mod m); (tính chát đối xứng)
a (mod m) và b (mod m) thì a (mod m); (tính chất bắc cầu)
2/ Tổng hay hiệu các “đồng dư”:
(a+b) (mod n) [(a mod n) + (b mod n)] (mod n)
(a- b) (mod n) [(a mod n) - (b mod n)] (mod n)
Trang 11Điều này mâu thuẫn giả thiết p là nguyên tố Vậy giả sử sai, hay k là số nguyên
tố
Trang 123/ Hàm Euler:
Cho số nguyên dương n, số lượng các số nguyên dương bé hơn n và nguyên tố
cùng nhau v ới n được ký hiệu (n) và gọi là hàm Euler.
Nhận xét: Nếu p là số nguyên tố, thì ( )
Ví dụ:
Tập các số nguyên không âm nhỏ hơn 7 là Z7 = {0, 1, 2, 3, 4, 5, 6, 7}
Do 7 là số nguyên tố, nên Tập các số nguyên dương nhỏ hơn 7 và nguyên tố cùng nhau với 7 là Z7 *= {1, 2, 3, 4, 5, 6, 7} Khi đó |Z| = ( ) = p-1 = 8 – 1 = 7.
Định lý hàm Euler:
Nếu n là tích của hai số nguyên tố n = p.q, thì (n) = ( ) ( ) = (p – 1).(q -1).
1.1 KHÁI NIỆM TRONG ĐẠI SỐ
1.2.1 Nhóm
1.2.1.1 Khái niệm
Nhóm là một bộ (G,*), trong đó G , * là phép toán hai ngôi trên G thỏa mãn ba
tính chất sau:
- Phép toán có tính kết hợp (x*y)*z = x * (y*z) với mọi x, y, z G
- Có phần tử trung lập e G: x*e = e*x = x với mọi x G
- Với mọi x G, có phần tử nghịch đảo x’ G: x*x’ =x’ * x = e
Cấp của nhóm G được hiểu là số phần tử của nhóm, kỹ hiệu là |
G| Cấp của nhóm có thể là nếu G có vô hạn phần tử
Nhóm Abel là nhóm (G, *), trong đó phép toán hai ngôi * có tính giao hoán
- Tập Q* các số hữu tỷ khác 0 (hay tập R* các số thực khác 0), cùng với phép nhân
(*) thông thường là nhóm giao hoán Gọi là nhóm nhân các số hữu tỷ (số thực) khác 0.
- Tập các vectơ trong không gian với phép toán cộng vectơ là nhóm giao hoán
Trang 13Khi đó g được gọi là phần tử sinh hay phần tử nguyên thủy của nhóm G Nói cách
khác: G được gọi là Nhóm Cyclic nếu tồn tại g G sao cho mọi phần tử trong G đều là
một lũy thừa nguyên nào đó của g
Nhóm (Z + , +) gồm các số nguyên dương là Cyclic với phàn tử sinh g = 1.
Cho (G, *) là Nhóm Cyclic với phần tử sinh g và phần tử trung lập e.
Nếu tồn tại số tự nhiên nhỏ nhất n mà g n = e, thì G sẽ chỉ gồm có n phần tử khác nhau: e, g, g 2 , g 3 ,…, g n-1 Khi đó G được gọi là nhóm Cyclic hữu hạn cấp n.
Nếu không tồn tại số tự nhiên n để g n = e, thì G có cấp
1.2.1.3 Nhóm(Zn * , phép nhân mod n)
Kí hiệu Zn = {0, 1, 2, … , n-1} là tập các số nguyên không âm < n
Z n và phép công (+) lập thành nhóm Cyclic có phần tử sinh là 1, phần tử trung lập
e = 0 (Z n , +) gọi là nhóm cộng, đó là hữu hạn có cấp n.
Kí hiệu Zn *
= {x Z n , x là số nguyên tố cùng nhau với n} Tức là x phải 0.
*
Z n được gọi là Tập thặng dư thu gọn theo mod n, có số phần tử (n).
* với phép nhân mod n lập thành một nhóm (nhóm nhân), phần tử trung lập e = 1
lẻ
Tổng quát (Zn *, phép nhân mod n) không phả nhóm Cyclic
Nhóm nhân Z n *là Cyclic chỉ khi n có dạng: 2, 4, pk
, hay 2pk với p là số nguyên tố
* Định lý Lagrange:
Nếu G là nhóm cấp n và G, thì Cấp của là ước của n.
* Hệ quả: Giả sử Z n * có Cấp m, thì m là ước của (n).
* Định lý:
Nếu p là số nguyên tố thì Zn * là nhóm Cyclic Nếu b Zn *
thì ( ) (mod n).Nếu p là số nguyên tố thì ( ) = p – 1 Do đó với b Zp * (tức b guyên tố với p),thì ( ) (mod n), hay bp – 1 (mod n)
Trang 141.2.1.4 Phần tử nghịch đảo đối với phép nhân
* Định nghĩa
Cho a Zn, nếu tồn tại b Zn sao cho a b 1(mod n), ta nói b là phần tử nghịch
đảo của a trong Zn và kí hiệu a-1
1(mod n) thì a.a-1 = 1 + kn a.a-1 – kn = 1 (a,n) = 1
Nếu (a,n) = 1, ta có a.a-1 + kn = 1 → a.a-1 = 1 + kn, do đó a.a-1
a.(b.c) = (a.b).c với mọi a, b, c R.
a.(b+c) = a.b + a.c và (a+b).c = a.c + b.c với mọi a, b, c R.
Vành tuyến tính
F là một vành Một đa thức bậc n trên F có dạng:
( ) ∑ = a0 + a1x + … + anxnvới n là số nguyên dương, các hệ số ai F (0 )
Trang 15Định lý (Thuật toán chia cho F[x])
Giả sử ( ) và ( ) , - có bậc nguyên dương, tồn tại duy nhất đa thức q(x),r(x) Nếu ( ) là đa thức 0 thì ( ) được gọi là ước của ( ) Đa thức bất định ( ), - thỏa mãn ( ) ( ) ( ) ( ) với bậc của ( ) nhỏ hơn bậc của ( )trong F[x] là tối giản nếu nó không có ước bậc thấp hơn ( ) trong F[x].a F là nghiệm của ( ) , - nếu ( ) = 0
Với , ta có là số nguyên tố ⇔ | tức là | hoặc |
Nếu là một trường thì tạo thành một nhóm nhân Nếu thì Điềunày nghĩa là và tồn tại Do đó nếu | và thì |( ) Vậy là
số nguyên tố
Ngược lại, giả sử là số nguyên tố Để chỉ ra rằng là một nhóm nhân ta chỉ cầnchỉ ra rằng với mọi sẽ luôn tồn tại nghịch đảo Với và , nếu
Vì | ( ) ⇒ | hoặc | và tức là Điều này suy ra
* | + trong đó với vì luôn tồn tại phần tử 1 trong .Vậy mỗi luôn có phần tử nghịch đảo
Trang 16Trường hữu hạn là trường chứa hữu hạn các phần tử mọi trường hữu hạn có một sốnguyên tố là đặc số của trường Một trường có đặc số thì với mọi
Nếu H là trường con của K thì H và K có cùng đặc số
F là trường mở rộng của trường K Ký hiệu F = K( ) nếu F là trường mở rộng nhỏnhất của K chứa Nếu F là trường hữu hạn đặc số p thì nhóm nhân F*
=F\{0} là nhómcyclic và F = Zp( ) với là phần tử sinh của nhóm F*
và được gọi là phần tử nguyênthủy của F
Với 2 toán tử nhị nguyên * và trên các tập A và B, một ánh xạ : A → B nếu với
Trang 17Chứng minh
Giả sử { } là cơ sở của F như là một không gian vector trên K Mọi
sẽ có dạng trong đó ( ) Vì mối ci có thể làmột
trong q phần tử của K nên số các tổ hợp tuyến tính là
Trường hữu hạn là một trường mở rộng của Zp bậc n và mọi phần tử của
là một nghiệm của đa thức trên Zp
Chứng minh
Đặc số của là p Tập hợp F* = F \ {0} tạo thành nhóm nhân bậc pn – 1 Với, bậc của trong nhóm chia hết cho bậc của F*, pn – 1 Vì vậy, với mọi ,chúng ta có = 1 hay Vì có nhiều pn nghiệm, gồm tất cả cácnghiệm của trên Zp
Ví dụ
Trường F2, chứa F2 (hoặc Z2) Nếu viết toán tử cộng trong F2 như phép cộng vector
và viết phép nhân k và ( ) là một tích vô hướng của k F2 và v F2 Khi đóđược xem là không gian vector trên F2 với chiều r Ký hiệu d là chiều của không gianvector này Có thể thực hiện ánh xạ 1 – 1 giữa các phần tử trong không gian vector dchiều và các d-tuple của các phần tử trong F2 Vì vậy, có 2d phần tử trong không gian
vector này Vì d = r, là không gian vector r chiều
là mở rộng của Fq 2 phần tử là liên hợp trên Fq nếu và là cácnghiệm của cùng một đa thức tối giản bậc m trên Fq là các liên hợpcủa với Fq
là một mở rộng của Fq Một cơ sở của (không gian vector trên Fq) của{ }gồm và các liên hợp của nó với Fq , được gọi là cơ sởtrực giao của trên Fq Mọi trường mở rộng bậc hữu hạn của một trường hữu hạn cómột cơ sở trực giao
Trang 18Không gian chiếu
Xét L = Kn+1 \{0} với K là một trường Với A = (a0, a1, …, an), B = {b0, b1, …, bn}
L, định nghĩa một quan hệ A ~ B gồm A, B và gốc O = (0, 0,…,0) là cộng tuyến, nghĩa
là tồn tại thỏa mãn: (i = 0, 1, …, n)
Quan hệ ~ là quan hệ tương đương và định nghĩa một phân hoạch của L Tập thương
số là không gian chiếu ký hiệu là
Pn(K)
Mặt phẳng chiếu là tập các lớp tương đương của bộ ba (X, Y, Z) với( ) ( )( ) Mỗi lớp tương đương (X, Y, Z) được gọi là một điểmchiếu trên mặt phẳng chiếu Nếu một điểm chiếu có Z 0, thì (x, y, 1) là một thể hiệncủa lớp tương đương với x = , y = Mặt phẳng chiếu có thể được định nghĩa là tập tất
cả các điểm (x, y) của mặt phẳng Affine cộng với các điểm Z = 0
1.2.4 Không gian vector
K là một trường và V là một nhóm cộng Abel V được gọi là không gian vector trêntrường K nếu một toán tử K x V → V được định nghĩa thỏa mãn các điều kiện
có dạng với ci K (i = 1, …, m) là một tổ hợp tuyến tính của
v1, …, vm Tập hợp tất cả các tổ hợp tuyến tính gọi là span của v1, …,vm và ký hiệu làspan(v1, …, vm) v1, …, vm được gọi là span nếu của V nếu V = span(v1, …, vm)
V là không gian vector trên trường K Các vector v1, …, vm V được gọi làđộc lập tuyến tính trên K nếu không có các vô hướng c1, …, cm K thỏa mãn:
Tập S = {u1, u2,…,un} của các vector tạo thành cơ sở của V khi và chỉ khi
u1, u2,…,un là độc lập tuyến tính là span của V Nếu S là một cơ sở của V thì mọi phần
tử của V được biểu diễn duy nhất dưới dạng tổ hợp tuyến tính của các phần tử của S.Nếu không gian vector V có cơ sở là một số hữu hạn các vector thì bất kỳ cơ sở nàocủa V cũng sẽ có cùng số phần tử Khi đó nó chính là chiều của V trên K
Nếu F là một trường mở rộng của trường K thì F là một không gian vector trên K
Trang 19Chiều của F trên K đƣợc gọi là bậc mở rộng của F trên K.
Trang 201.3 KHÁI NIỆM TRONG MẬT MÃ
1.3.1 Một số khái niệm
1.3.1.1 Khái niệm Mã hóa dữ liệu
Để đảm bảo An toàn thông tin (ATTT) lưu trữ trong máy tính (giữ gìn thông tin
cố định) hay đảm bảo ATTT trên đường truyền tin (trên mạng máy tính), người taphải “che giấu” các thông tin này “Mã hóa” thông tin là một là một trong nhữngphương pháp đảm bảo ATTT
Hệ mã hóa là một bộ năm (P, C, K, E, D), thỏa mãn:
P là một tập hữu hạn các bản rõ.
C là một tập hữu hạn các bản mã.
K là tập hữu hạn các khóa.
E là tập hữu hạn các quy tắc mã hóa.
D là tập hữu hạn các quy tắc giải mã.
Đối với mỗi k K có một quy tắc mã hóa e k E, e k : P → C và một quy tắc giải
A là tập hữu hạn các thuật toán ký.
V là tập hữu hạn các thuật toán xác minh.
Đối với mỗi k K có một thuật toán ký sig k A, sig k : M → S và một thuật toán xác minh tương ứng ver k V, ver k : M S → {đúng, sai} thỏa mãn điều kiệnsau với mỗi m M và s S:
( )
Trang 211.3.1.3 Hàm băm
Hàm băm (hash function) là một trong hai kĩ thuật chủ yếu phục vụ quá trình xácthực Chức năng chính của nó là thực hiện ánh xạ các bản tin có chiều dài khác nhauthành một miếng băm có kích thước cố định Miếng băm mới tạo ra thường có kíchthước nhỏ hơn rất nhiều so với bản tin ban đầu
Một giá trị miếng băm h được sinh ra bởi hàm băm H có dạng: h = H(M) trong đó:
M là bản tin có chiều dài tùy ý, h là giá trị băm chiều dài cố
định Các yêu cầu đối với hàm băm:
- Hàm băm H có thể áp dụng cho các khối dữ liệu với kích thước tùy ý
- Đầu ra của hàm băm H có độ dài xác định
- Việc xác định giá trị H(x) đủ đơn giản để việc cài đặt là khả thi đối với cả phần mềm và phần cứng
- Hàm H là hàm một chiều, nghĩa là x cho trước thì H(x) xác định nhưng với h chotrước thì việc tính x cực kỳ khó khăn
- Với hai giá trị đầu vào thì H(x) ≠ H(y)
Hiện nay, một số kỹ thuật băm được sử dụng phổ biến như: SHA-1, SHA-256,SHA-384, SHA-512; MD-4, MD-5…Tuy nhiên chương trình thử nghiệm sẽ tập trungnghiên cứu và cài đặt thuật toán băm SHA
Trang 221.3.2 Một số thuật ngữ liên quan
Chữ ký số (Digital signature) là một dạng dữ liệu số đƣợc sinh ra từ một lƣợc đồ
chữ ký số, nhằm chứng thực nguồn gốc hay hiệu lực của thông điệp dữ liệu Từ đây
cho đến hết nội dung của tài liệu, khi chỉ nhắc tới “chữ ký” ta sẽ hiểu đó là “chữ ký số” Chữ ký đơn là một dạng chữ ký số do một thực thể tạo ra (có thể là một đối tƣợng,
hoặc đại diện cho một nhóm đối tƣợng) nhằm chứng thực nguồn gốc hay hiệu lực củathông điệp dữ liệu của thực thể đó
Chữ ký bội đƣợc tạo nên từ nhiều chữ ký đơn cũng nhằm chứng thực nguồn gốc
hay hiệu lực của thông điệp dữ liệu
Cơ quan chứng thực – CA (Certification Authority) là một thực thể cung cấp chứng
chỉ số
Hìn h 1.1 C ác chức năng c ủa hệ th ốn g C A
Trang 241.4.1.2 Quy trình kiểm tra một chữ ký số:
Hìn h 1.3 Q u y trì nh ki ểm t ra chữ số ký
s ố
Tính toán giá trị băm hiện thời
Sau khi nhận được thông điệp dữ liệu ban đầu (nói chính xác là thông điệp dữliệu mà bên nhận cho là thông điệp dữ liệu ban đầu) và chữ ký gửi kèm, bên nhậntiến hành tách riêng hai phần Phần thông điệp dữ liệu ban đầu trở thành đầuvào của thuật toán băm giống với thuật toán băm khi tạo ra chữ ký số Giá trịbăm nhận được gọi là giá trị băm hiện thời vì nó được tính từ thông điệp dữ liệuhiện thời
Tính toán giá trị băm ban đầu
Trong bước thứ hai của quá trình giải mã, chữ ký số đính kèm được giải mã bằngkhóa công khai (public key) tương ứng với khóa bí mật (private key) dùng để tạochữ ký ở bên gửi Kết quả thu được giá trị băm ban đầu
So sánh giá trị băm hiện thời với giá trị băm ban đầu
Trong bước này ta tiến hành so sánh giá trị băm thu được từ bước 1 và bước 2 củaquá trình xác thực:
• Nếu hai giá trị băm này trùng nhau: quá trình xác thực thành công, thông điệp dữliệu đã được ký bằng khóa bí mật tương ứng với khóa công khai khi xác minh,đồng thời thông điệp dữ liệu cũng không bị thay đổi trong quá trình truyền đi
• Nếu hai giá trị băm không trùng: quá trình xác thức thất bại, có hai trường hợp mất
an toàn đã xảy ra:
- Khóa bí mật của người gửi không được sử dụng khi tạo chữ ký
Trang 25- Thông điệp dữ liệu đã thay đổi trong quá trình truyền đi.
Trang 261.4.1.3 So sánh giữa các phương pháp mã hóa sử dụng khóa công khai
Mã hóa sử dụng khóa công khai dựa trên hai vấn đề lớn của bài toán học là bài toánlogarit rời rạc và bài toán phân tích thừa số của số nguyên tố Phương pháp RSA dựatrên bài toán phân tích thừa số của số nguyên tố được đưa ra từ cuối thập niên 70, làphương pháp được sử dụng rộng rãi nhất hiện nay Phương pháp ECC dựa trên bài toánlogarit rời rạc trên trường số của EC chỉ mới đực đưa ra năm 1985
Ưu điểm của ECC là khả năng bảo mật cao với kích thước khóa nhỏ dựa vào mức
độ khó giải quyết của vấn đề ECDLP Đây chính là tích chất rất hữu ích đối với xuthế ngày nay tìm ra phương pháp tăng mức độ bảo mật của mã hóa khóa công khai vớikích thước khóa rút gọn Kích thước khóa nhỏ hơn giúp giảm lưu lượng trên mạng,giảm thời gian tạo khóa, ký và xác nhận ký
(bits)
ECC(bits)
Trang 27Do kích thước khóa nhỏ và khả năng phát sinh khóa rất nhanh nên ECC rất đượcquan tâm để áp dụng cho các ứng dụng trên môi trường giới hạn về thông lượng truyền
dữ liệu, giới hạn về khả năng tính toán, khả năng lưu trữ ECC thích hợp với các thiết
bị di động kỹ thuật số như điện thoại di động, thẻ thông minh (smart card…)
Các hệ thống ECC đã và đang được một số công ty lớn về viễn thông và bảo mậttrên thế giới quan tâm phát triển Nổi bật trong số đó là Certicom (Canada) keetss hợpvới Đại học Waterloo đã nghiên cứu và xem ECC như chiến lược phát triển bảo mậtchính của công ty Certicom cung cấp dịch vụ bảo mật dựa trên ECC Ngoài ra, một sốcông ty khác như Siemens (Đức), Matsushita (Nhật), Thompson (Pháp) cũng nghiêncứu phát triển ECC Mới đây, RSA Security Laboratory (phòng thí nghiệm chính củaRSA) đã bắt đầu nghiên cứu và đưa ECC vào sản phẩm chính của mình
Tuy nhiên, ECC vẫn có một số hạn chế nhất định Hạn chế lớn nhất hiện nay là việc
chọn sử dụng các tham số đường cong và điểm quy ước chung như thế nào để thật sựđạt được độ bảo mật cần thiết Hầu hết các đường cong được đưa ra đều thất bại khi ápdụng vào thực tiễn Do đó hiện nay số lượng đường cong thật sự được sử dụng khôngphong phú NIST đề xuất một số đường cong elliptic curve đã được kiểm định là an toàn
để đưa vào sử dụng thực tế trong tài liệu FIPS 186-2 Ngoài ra, đối với các tham sốmang giá trị nhỏ, mức độ bảo mật của ECC không băng RSA Đối với một số trườnghợp RSA vẫn là lựa chọn tốt do RSA đã chứng minh được tính ổn định trong mộtkhoảng thời gian khá
dài
ECC vẫn còn non trẻ và cần được kiểm định trong tương lai Tuy nhiên, ECC cungcấp khả năng ứng dụng rất lớn trong lĩnh vực mã hóa khóa công khai trên các thiết bị diđộng và smart card Tương lai ECC sẽ được nghiên cứu đưa và thực tiễn phổ biến hơn
Trang 281.4.2 Chữ ký bội
Trên thực tế, có rất nhiều trường hợp khi ký vào một tài liệu cần nhiều người ký(hợp đồng, đơn từ, …) để xác thực nguồn gốc, hiệu lực của tài liệu đó Chữ ký sốcũng vậy, cũng có rất nhiều trường hợp cần nhiều người cùng ký vào một thông điệp
dữ liệu Và với nhu cầu thực tế và ngày càng trở nên cần thiết trong bối cảnh Chínhphủ điện tử, Thương mại điện tử hay nói cung là các giao dịch điện tử đang được pháttriển với qui mô toàn cầu, việc ra đời các mô hình ứng dụng chữ ký bội là một tất yếu.Chữ ký bội cho phép nhiều người cùng ký vào một thông điệp dữ liệu Chữ ký bộigiúp cho việc xác thực nguồn góc và tính toàn vẹn thông tin chính xác hơn rất nhiều, và
nó đáp ứng tốt các yêu cầu mà thực tiễn hiện nay đặt ra
Phần này giới thiệu sơ qua về chữ ký bội, ta sẽ đi sâu hơn ở các chương sau Chữ ký
bội được xây dựng và hình thành dựa trên chữ ký số đơn ta phân loại [7] chúng như cácphần dưới đây
1.4.2.1 Chữ ký nối tiếp
Đây là trường hợp “ký lên chữ ký”, người thứ nhất ký lên thông điệp dữ liệu; ngườithứ hai ký lên thông điệp dữ liệu do người thứ nhất ký … Người ký sau sẽ kiểm tra tínhhợp lệ của tất cả các chữ ký trước
Ta chia ra hai trường hợp như sau:
Không phụ thuộc vào thứ tự: chỉ cần có đủ chữ ký hợp lệ, không cần xem xétđến thứ tự của người ký
Phụ thuộc vào thứ tự: một người ký vào thông điệp dữ liệu cần ký đúng thứ
tự của mình thì chữ ký đó mới có hiệu lực (ví dụ khi ký vào tài liệu trả lươngcho nhân viên, yêu cầu giám đốc phải ký trước sau đó đến phòng kế toán ký)
1.4.2.2 Chữ ký song song
Tất cả các chữ ký của các thành viên sẽ được tạo độc lập, có vai trò như nhau(song song) cùng ký vào thông điệp dữ liệu Tất cả các thành viên tham gia vào quátrình tạo khóa chung của cả nhóm Sau đó, cần thống nhất cứ ra một người đại diện chotất cả các thành viên, người đại diện là người tin cậy của tất cả các thành viên nhóm,nhưng không phải là thành viên trong nhóm (không tham gia ký), hoặc nhờ cơ quanchứng thực CA đáng tin cậy làm đại diện
Trang 29Chương 2 CH Ữ KÝ BỘI DỰA TRÊN HỆ MẬT RSA
2.1 HỆ MẬT RSA
Hệ mật RSA [1] là hệ mật khóa công khai đầu tiên được đề xuất và công bố bởi RonRivest, Adi Shamir và Len Adleman vào năm 1977 tại Viện Công nghệ Massachusetts(MIT – Massachusetts Institus of Technology) Hoa Kỳ Hệ mật này được cho là an toànkhi các tham số được lựa chọn hợp lý Hiện tại, RSA vẫn đang được sử dụng phổ biếntrong các giao dịch điện tử (Chính phủ điện tử, Thương mại điện tử, …) do tính mềmdẻo và độ an toàn danh tiếng của nó
2.1.1 Thuật toán hình thành cặp khóa
Các bước của thuật toán hình thành cặp khóa (bí mật, công khai):
Sinh hai số nguyên tố p và q lớn, mạnh
Tính n = p * q, ( ) = (p - 1)(q - 1)
Chọn khóa công khai e là một giá trị ngẫu nhiên thỏa mãn 1 < e < ( ) và gcd(e, ( ))=1 Khóa bí mật d là phần tử nghịch đảo của b theo mod ( ): e*d 1 (mod ( )) hay d = e-1 mod ( )
2.1.2 Thuật toán mã hóa khóa công khai bằng hệ mật
RSA
Đặt P = C = Z n, sau khi tạo được cặp khóa (bí mật, công khai)
K = {(d, e) | d, e Z n , e*d 1 (mod ( )}
2.1.2.1 Thuật toán mã hóa
- Biểu diễn thông điệp dữ liệu M cần mã hóa thành một giá trị tương ứng m Zn
- Sử dụng khóa công khai e của người nhận để mã hóa giá trị m theo công thức:
C = (m) e mod n
2.1.2.2 Thuật toán giải mã
- Người nhận dùng khóa bí mật d để giải mã theo công thức:
Trang 302.1.3.2 Thuật toán kiểm tra chữ ký
- Tính giá trị đại diện của thông điệp dữ liệu cần thẩm tra M
m = H(M)
- Sử dụng khóa công khai của người ký để tính (giải mã S) theo công thức:
= (S) e mod n
- Nếu = m thì thông điệp dữ liệu có nguồn gốc hay hiệu lực được chứng thực
2.1.4 Độ an toàn của hệ mã hóa RSA
- Hệ mã hóa RSA là tất định, tức là với một bản rõ m và một khóa bí mật d thì chỉ
- Nhưng phân tích n thành tích của p và q là bài toán khó, độ an toàn của hệ
mật RSA dựa vào khả năng giải bài toán phân tích số nguyên dương n thành tích của
2 số nguyên tố lơn p và q
- Từ thuật toán hình thành chữ ký: S = (m)d mod n, tính khóa bí mật d từ việc giải:
d = log m (S) mod n Đây là bài toán logarit rời rạc trong modulo n với n là hợp số Để
tấn công khóa bí mật cần giải bài toán logarit rời rạc trong modulo hợp số
2.2 LƯỢC ĐỒ CHỮ KÝ CƠ SỞ DỰA TRÊN HỆ MẬT RSA
2.2.1 Lược đồ chữ ký cơ sở
Lược đồ chữ ký cơ sở - RSA.1 [4] được phát triển từ thuật toán chữ ký số RSA.Lược đồ chữ ký cơ sở được bổ sung thêm một cặp khóa (bí mật, công khai) thứ hai vớimục đích cải thiện độ an toàn của hệ mã hóa RSA
Trang 31- Hình thành các tham số công khai
Tính modulo n theo công thức: n = p * q
Chọn giá trị t thỏa mãn: 1 < t < n
Chọn hàm băm H: {0, 1}*
Z n
2/ Tạo các cặp khóa
- Tạo cặp khóa (bí mật, công khai) thứ nhất:
Chọn khóa công khai thứ nhất e thỏa mãn: 1 < e < ( ) và gcd(e, ( ))=1.
Tính khóa bí mật thứ nhất d theo công thức: d = e-1 mod ( )
- Tạo cặp khóa (bí mật, công khai) thứ hai:
Chọn khóa bí mật thứ hai x thỏa mãn: 1 < x < n
Tính khóa công khai thứ hai y theo công thức: y = x-t
mod n
2.2.1.2 Tạo chữ ký và kiểm tra chữ ký
1/ Thuật toán tạo chữ ký
Dữ liệu đầu vào của thuật toán hình thành chữ ký bao gồm: Thông điệp dữ liệu cần
ký M và cặp khóa bí mật (d, x) của thực thể ký Kết quả đầu ra của thuật toán là một
cặp chữ ký số (E, S) tương ứng với M Thuật toán bao gồm các bước sau:
• Bước 1: Tính giá trị R theo công thức: R = (H(x || M)) t
mod n
• Bước 2: Tính giá trị E’ theo công thức: E’ = H(R || M)
• Bước 3: Tính giá trị S’ theo công thức: S’ = H(x || M) * (x) E’
2/ Thuật toán kiểm tra chữ ký
Dữ liệu đầu vào của thuật toán bao gồm: Thông điệp dữ liệu cần chứng thực M vàcặp chữ ký (E, S) tương ứng với cặp khóa công khai (e, y) của thực thể ký vừa tạo ởtrên Đầu ra của thuật toán là sự chứng thực nguồn gốc hay hiệu lực của thông điệp dữliệu là hợp lệ hay không hợp lệ
Thuật toán bao gồm các bước sau:
• Bước 1: Tính giá trị theo công thức: = (E) e
mod n
• Bước 2: Tính giá trị theo công thức: = (S) e
mod n
• Bước 3: Tính giá trị theo công thức: = ( )t * ( ) mod n
• Bước 4: Tính giá trị ̿ theo công thức: ̿ = H( || M)
Trang 32• Bước 5: Kết quả trả về hợp lệ nếu ̿ = và không hợp lệ nếu ̿ ≠
Trang 332.2.2 Tính đúng đắn của lƣợc đồ chữ ký cơ sở
Bổ đề 2.1: Nếu p, q là 2 số nguyên tố phân biệt, n = p * q và ( ) = (p - 1)(q - 1),
1 < e < ( ) và gcd(e, ( )) = 1, d = e-1 mod ( ) và 0 ≤ m < n, thì: (m) e*d mod n = m.
Chứng minh:
Thật vậy, ta có:
d = e-1 mod ( )Nên:
Từ đây suy ra:
(m) e*d mod n = ( ) mod n = ( ) * m 1 mod n
= ( ( ))k * m mod n = (1) k * m mod n = m mod n = m
Vậy bổ đề đã đƣợc chứng minh
Kiểm chứng sự phù hợp giữa các thuật toán hình thành chữ ký, kiểm tra chữ ký [2]
Ta cần chứng mình điều sau: Cho p, q là 2 số nguyên tố phân biệt, n = p * q và
= (E) e mod n = ((E’) d mod n) e mod n = (E’) d*e mod n = E’
và = (S) e mod n = ((S’) d mod n) e mod n = (S’) d*e mod n = S’
Do đó:
= ( )t * ( ) mod n = (S’)t * (y) E’ mod n
= (H(x || M) * (x) E’ mod n) t * (x-t mod n) E’ mod n
= ((H(x || M)) t * ((x) E’)t mod n) * (x -t*E’ mod n) mod n
= R * (x) t*E’ * (x) -t*E’ mod n = R
Trang 34Nên ta có:
̿= H( || M) = H( || M) = E’
Từ đây suy ra: ̿ = (Điều cần chứng minh)
2.2.3 Mức độ an toàn của lược đồ chữ ký cơ sở
Các thuật toán hình thành tham số hệ thống và cặp khóa (bí mật, công khai) thứnhất của lược đồ tương tự như ở hệ mật mã RSA Vì vậy , mức độ an toàn [1][2] trongtrường hợp này cũng phụ thuộc vào khả năng giải bài toán phân tích số nguyên dương
n thành tích của 2 số nguyên tố lơn p và q tương tự như RSA.
Cặp khóa (bí mật, công khai) thứ hai (x, y) hình thành theo công thức y = x-t
mod n.
Vì vậy, để tính khóa bí mật x từ khóa công khai y cần giải được bài toán khai căn trong
modulo hợp số cũng tương tự như với hệ mật RSA
Với (E’’, S’’) là cặp chữ ký giả mạo tương ứng với thông điệp dữ liệu M Chữ kýnày sẽ được chứng thực nguồn gốc hay hiệu lực nếu (M, E’’, S’’) thỏa mãn điều kiện sau:
(E’’) e mod n = H(((S’’) t*e * ( )( ) mod n) || M)
2.3 CHỮ KÝ BỘI TRÊN HỆ MẬT RSA
2.3.1 Lược đồ chữ ký bội nối tiếp
Lược đồ chữ ký bội nối tiếp - RSA.2 [2] hình thành chữ ký bội từ chữ ký cá nhâncủa một tập gồm k người ký Ui với i = 1, 2, …, k và chữ ký của CA
Lược đồ chữ ký bội được xây dựng với các chức năng:
Chứng nhận và kiểm tra tính hợp pháp của các đối tượng ký
Hình thành chữ ký bội của một nhóm đối tượng ký đối với một thông điệp
dữ liệu M Chữ ký bội được tạo ra có dạng đa chữ ký nối tiếp, chữ ký nàyđược hình thành từ chữ ký cá nhân của nhóm đối tượng ký và chữ ký của
CA Việc kiểm tra chữ ký bội được thực hiện tương tự như với một chữ
Trang 35- Hình thành các tham số công khai
Tính modulo n theo công thức: n = p * q
Chọn giá trị t thỏa mãn: 1 < t < n
Chọn hàm băm H: {0, 1}*
Z n
2/ Tạo các cặp khóa
- Tạo cặp khóa (bí mật, công khai) của CA:
Chọn khóa công khai thứ nhất e thỏa mãn: 1 < e < ( ) và gcd(e, ( ))=1.
Tính khóa bí mật thứ nhất d theo công thức: d = e-1 mod ( )
- Tạo cặp khóa (bí mật, công khai) cho từng đối tượng ký Ui:
Chọn khóa bí mật thứ hai x thỏa mãn: 1 < xi < n
Tính khóa công khai thứ hai y theo công thức: yi = x i-t mod n
2.3.1.2 Chứng nhận và kiểm tra tính hợp pháp của đối tượng ký
Một đối tượng Ui được công nhận là thành viên của một tổ chức được CA của tổchức đó cấp chứng nhận dưới dạng một Chứng chỉ khóa không khai Khi đó, đối tượng
Ui sẽ được phép ký các thông điệp dữ liệu với tư cách là thành viên của tổ chức đó
1/ Thuật toán chứng nhận đối tượng ký
Dữ liệu đầu vào của thuật toán bao gồm: Khóa công khai (yi) và thông tin nhậndạng (IDi) của đối tượng Ui, khóa bí mật d của CA Kết quả đầu ra của thuật toán làchứng nhận Vi của CA đối với Ui Thuật toán bao gồm các bước sau:
• Bước 1: Tính giá trị V i ’ theo công thức: V i ’ = H(y i || ID i)
• Bước 2: Hình thành chứng nhận V i theo công thức: Vi = (V i ’) d mod n
• Bước 3: CA công khai V i là chứng nhận của CA đối với Ui
2/ Thuật toán kiểm tra tính hợp pháp của đối tượng ký
Dữ liệu đầu vào của thuật toán gồm: Khóa công khai (yi) và thông tin nhận dạng(IDi) của đối tượng Ui , chứng nhận Vi của CA đối với Ui , khóa công khai e của CA Kết
quả của thuật toán là sự khẳng định về tính hợp lệ của chứng nhận Vi hay sự công nhận
về tính toàn vẹn của yi và tính hợp pháp của Ui Thuật toán bao gồm các bước:
• Bước 1: Tính giá trị V i ’ theo công thức: V i ’ = H(y i || ID i)
• Bước 2: Tính giá trị theo công thức: = (V i)e mod n
• Bước 3: Kiểm tra nếu = V i ’ thì V i hợp lệ, do đó tính hợp pháp của Ui vàtính toàn vẹn của yi được công nhận
Trang 362.3.1.3 Hình thành và kiểm tra chữ ký bội nối tiếp
Giả sử nhóm ký G có N thành viên tham gia ký: với các cặpkhóa (bí mật, công khai) như đã hình thành ở trên Đặc điểm chữ ký bội ở đây là:
Độ dài của chữ ký bội là cố định, không phụ thuộc số lượng thành viên
Chữ ký bội chỉ được tạo ra khi có đủ số lượng thành viên tham gia ký
Chữ ký bội được thẩm tra nhờ khóa công khai chung của nhóm, khóa côngkhai chung này được hình thành từ đầy đủ các khóa công khai riêng của mỗithành viên ký
Việc thẩm tra một chữ ký bội được thực hiện tương tự như với một chữ ký
số thông thường
1/ Thuật toán hình thành chữ ký bội nối tiếp
Dữ liệu đầu vào của thuật toán bao gồm: Thông điệp dữ liệu cần ký M, khóa bí mậtcủa các thành viên tham gia ký và khóa bí mật d của CA Các bướccủa thuật toán:
1) Hình thành phần thứ nhất (EG) của chữ ký bội theo các
bước:
1a - Thành viên ( ) hình thành phần thứ nhất của chữ ký đơn R i theocông thức: Ri = R i-1 * (H(x i || M)) t mod n với R 0 = 1
1b - Thành viên ( ) gửi giá trị R i cho CA
1c - CA kiểm tra nếu i < N : CA gửi R i cho thành viên tiếp theo U i+1 để tiếp tụcthực hiện bước 1a Nếu i = N thì RG = R N , CA chuyển sang thực hiện bướctiếp theo
1d - CA tính giá trị EG theo công thức: EG = H(R G || M)
2) Hình thành phần thứ hai (SG) của chữ ký bội theo các
bước:
2a - CA gửi giá trị EG cho các thành viên nhóm ký
2b - Thành viêncông thức: Si = S(i-1 * H(x i ) hình thành phần thứ hai của chữ ký đơn S|| M) * ( ) mod n với S 0 = 1 i theo2c - Thành viên ( ) gửi giá trị S i cho CA
2d - CA kiểm tra tình hợp lệ của chữ ký đơn (Ri, Si) Nếu tính hợp lệ của chữ ký
đơn được công nhận thì thực hiện các bước tiếp theo Ngược lại kết thúc việc hình thành chữ ký bội
2e - Nếu i < N : CA gửi Si cho thành viên tiếp theo Ui+1 để tiếp thực thực hiện
bước 2b Nếu i = N thì S G = S N , CA chuyển sang thực hiện bước tiếp theo
Trang 372/ Thuật toán kiểm tra chữ ký bội nối tiếp
Dữ liệu đầu vào của thuật toán bao gồm: Thông điệp dữ liệu cần thẩm tra và chữ
ký bội tương ứng (E, S) của nhóm G, khóa công khai của các thành viên trong
nhóm và khóa công khai e của CA Kết quả đầu ra của thuật toán là sự
khẳng định về tính hợp lệ của chữ ký bội (E, S) hay sự công nhận về nguồn gốc và tínhtoàn vẹn của thông điệp dữ liệu M Thuật toán gồm các bước sau:
• Bước 1: Tính giá trị theo công thức: = (S) e mod n
• Bước 2: Tính giá trị theo công thức: = (E) e mod n
• Bước 3: Tính khóa công khai chung của nhóm Y G theo công thức: Y G = ∏
• Bước 4: Tính giá trị theo công thức: = ( )t * ( ) mod n
• Bước 5: Tính giá trị ̿̿̿ theo công thức: ̿̿̿ = H( || M)
• Bước 6: Kiểm tra nếu ̿̿̿ = thì chứng thực tính hợp lệ của chữ ký bội (E, S) và do
đó nguồn gốc cũng như tính toàn vẹn của thông điệp dữ liệu cần thẩm tra M đượccông nhận
3/ Thuật toán kiểm tra chữ ký cá nhân
Kiểm tra tính hợp lệ của (Ri , S i) là chữ ký cá nhân của thành viên Ui được hìnhthành như mục Thuật toán hình thành chữ ký bội đã nêu Thuật toán kiểm tra bao gồmcác bước như sau:
• Bước 1: Tính giá trị ( ) theo công thức: = (Si)t * ( ) mod n với
• Bước 2: Kiểm tra nếu = R i thì tính hợp lệ của chữ ký cá nhân (Ri , S i) được công nhận Ngược lại, nếu ≠ Ri thì có sự giả mạo trong chữ ký cá nhân
Trang 382.3.2 Lược đồ chữ ký bội song song
Giả sử nhóm ký G gồm N thành viên tham gia ký: Chữ kýbội song song - RSA.3 [2] được hình thành bằng cách: thu thập tất cả các chữ ký đơn
của các thành viên lên thông điệp dữ liệu M, sau đó tạo đa chữ ký (E G , S G) của cảnhóm từ những chữ ký đơn đã thu thập được Chữ ký bội được hình thành bằng cách
CA ký trực tiếp lên chữ ký chung của nhóm Việc kiểm tra tính hợp lệ của chữ ký bộisong song được thực hiện như với một chữ ký số đơn bình thường Tính đúng đắn củalược đồ này đã được Lưu Hồng Dũng [2] chứng minh
2.3.2.1 Hình thành các tham số hệ thống và khóa
Các tham số hệ thống , khóa được hình thành giống như tham số hệ thống, khóa
trong lược đồ chữ ký bội nối tiếp (mục 2.3.1.1).
2.3.2.2 Chứng nhận và kiểm tra tính hợp pháp của các đối tượng ký
Việc chứng nhận và kiểm tra tính hợp pháp của đối tượng ký được thực hiện tương
tự như trong lược đồ chữ ký bội nối tiếp (mục 2.3.1.2)
2.3.2.3 Hình thành và kiểm tra chữ ký bội song song
1/ Thuật toán hình thành chữ ký bội song song
Dữ liệu đầu vào của thuật toán bao gồm: Thông điệp dữ liệu cần ký M, khóa bí mậtcủa các thành viên tham gia ký và khóa bí mật d của CA Kết quảđầu ra của thuật toán là chữ ký tập thể (E, S) của nhóm G tương ứng với M Thuật toánbao gồm các bước sau:
1 - Hình thành phần thứ nhất (EG) của đa chữ ký theo các bước:
1a - Thành viên ( ) hình thành phần thứ nhất của chữ ký đơn R i theocông thức: Ri = (H(x i || M)) t mod n
1b - Các thành viên của nhóm gửi giá trị R i ( ) cho CA
1c - CA tính giá trị R G theo công thức: R G = ∏
1d - Sau đó CA tính giá trị E G theo công thức: E G = H(R G || M)
2 - Hình thành phần thứ hai (SG) của đa chữ ký chữ ký theo các bước:
2a - CA gửi giá trị EG cho các thành viên nhóm ký
2b - Thành viêncông thức: Si = (H(x( i || M))) hình thành phần thứ hai của chữ ký đơn St * ( ) mod n i theo
2c - Các thành viên nhóm ký gửi giá trị S i ( ) cho CA
Trang 392d - CA kiểm tra tính hợp lệ của các chữ ký cá nhân bằng Thuật toán kiểm tra
chữ ký đơn Nếu tính hợp lệ của các chữ ký đơn được công nhận thì thực
hiện các bước tiếp theo Ngược lại sẽ kết thúc việc hình thành chữ ký bội
2e - CA tính giá trị S G theo công thức: S G = ∏ mod n
3 - Hình thành chữ ký bội (E, S) theo các bước:
3a - CA hình thành phần thứ nhất E của chữ ký bội theo công thức:
2/ Thuật toán kiểm tra chữ ký bội song song
Dữ liệu đầu vào của thuật toán bao gồm: Thông điệp dữ liệu cần thẩm tra M và chữ
ký bội (E, S) của nhóm G, khóa công khai của các thành viên trong nhóm
và khóa công khai e của CA Kết quả đầu ra của thuật toán là sự
khẳng định về tính hợp lệ của chữ ký bội (E, S) hay sự công nhận về nguồn gốc và tínhtoàn vẹn của thông điệp dữ liệu Thuật toán gồm các bước như sau:
• Bước 1: Tính giá trị theo công thức: = (S) e mod n
• Bước 2: Tính giá trị theo công thức: = (E) e mod n
• Bước 3: Tính khóa công khai chung của nhóm Y G theo công thức: Y G = ∏
• Bước 4: Tính giá trị theo công thức: = ( )t * ( ) mod n
• Bước 5: Tính giá trị ̿̿̿ theo công thức: ̿̿̿ = H( || M)
• Bước 6: Kiểm tra nếu ̿̿̿ = thì chứng thực tính hợp lệ của chữ ký tập bội (E, S) và
do đó nguồn gốc cũng như tính toàn vẹn của thông điệp dữ liệu cần thẩm tra M đượccông nhận
3/ Thuật toán kiểm tra chữ ký cá nhân
Giả sử (R i , S i) là chữ ký cá nhân của thành viên ( ) được hình thành nhưtrên Thuật toán kiểm tra tính hợp lệ của (Ri , S i) gồm các bước sau:
• Bước 1: Tính giá trị ( ) theo công thức: = (Si)t * ( ) mod n
• Bước 2: Tính giá trị theo công thức: = ∏ mod n
• Bước 3: Kiểm tra nếu = R G thì chữ ký cá nhân (Ri , S i) của thành viên thứ i hợp lệ.Ngược lại, nếu ≠ R G thì có sự giả mạo trong các chữ ký cá nhân của thành viên
Trang 40trong nhóm.