TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU Sơ đồ ký số trên thiết bị cầm tay Có rất nhiều lược đồ ký số được đề xuất. Các lược đồ này có thể được phân thành hai loại chính: các lược đồ dựa trên thông điệp đại diện, và các lược đồ dựa trên khôi phục thông điệp. Trong lược đồ ký số dựa trên thông điệp dại diện, các thông báo ban đầu được ánh xạ tới một checksum bởi một hàm một chiều. Sau đó checksum này được sử dụng để tạo ra chữ ký số. Check sum được sử dụng để cung cấp tính toàn vẹn của dữ liệu. Trong lược đồ ký số dựa trên khôi phục thông điệp, người nhận có thể khôi phục lại thông điệp gốc từ chữ ký nhận được.
Trang 1ĐẠI HỌC QUỐC GIA – HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
BÁO CÁO TIỂU LUẬN
Trang 2MỤC LỤC
DANH SÁCH CÁC TỪ VIẾT TẮT 3
MỞ ĐẦU 4
PHẦN 1: TỔNG QUAN VỀ CHỮ KÝ SỐ 6
1.1 Một số khái niệm 6
1.1.1 Chữ ký số 6
1.1.2 Hàm băm 6
1.2 Sơ đồ chữ ký số 7
1.3 Yêu cầu của một hệ thống chữ ký số 8
1.4 Một số sơ đồ ký số 9
1.4.1 Chữ ký RSA 9
1.4.2 Chữ ký Elgamal 9
1.4.3 Chữ ký DSS 10
1.4.4 Chữ ký không thể phủ định 12
PHẦN 2: SƠ ĐỒ KÝ SỐ TRÊN THIẾT BỊ CẦM TAY “SERVER BASED SIGNATURE” 14
2.1 Sơ đồ ký SBS - Server Based Signature 14
2.1.1 Giao thức ký NRS của SBS 15
2.1.2 Giao thức ký NRS và NRR của SBS 16
2.1.3 Phân tích chối bỏ 16
2.2 Phân tích tính bảo mật và hiệu quả của SBS 17
2.2.1 Tính bảo mật 17
2.2.2 Tính Hiệu quả 18
TỔNG KẾT 19
TÀI LIỆU THAM KHẢO 20
Trang 3DANH SÁCH CÁC TỪ VIẾT TẮT
SBS Server Based Signature
Trang 4MỞ ĐẦU
Trong những năm gần đây, Internet trở lên ngày càng phát triển mạnh mẽ và có nhiềuứng dụng trên đó Lượng lớn các giao dịch thương mại được thực hiện trên mạngInternet Nhờ sự phát triển nhanh chóng của công nghệ thông tin di động, người ta có thể
sử dụng di động, điện thoại, máy tính bỏ túi và PDA để truy cập Internet ở bất cứ đâu vàbất cứ lúc nào Tuy nhiên, nhiều ứng dụng thông tin di động đang phải đối mặt với một
số vấn đề: sự riêng tư và bảo mật Các ứng dụng này bao gồm:
bị di động, các thiết bị sẽ bị block cho một khoảng thời gian, và pin sẽ cạn một cáchnhanh chóng
Có rất nhiều lược đồ ký số được đề xuất Các lược đồ này có thể được phân thành hailoại chính: các lược đồ dựa trên thông điệp đại diện, và các lược đồ dựa trên khôi phụcthông điệp Trong lược đồ ký số dựa trên thông điệp dại diện, các thông báo ban đầuđược ánh xạ tới một checksum bởi một hàm một chiều Sau đó checksum này được sửdụng để tạo ra chữ ký số Check sum được sử dụng để cung cấp tính toàn vẹn của dữ liệu.Trong lược đồ ký số dựa trên khôi phục thông điệp, người nhận có thể khôi phục lạithông điệp gốc từ chữ ký nhận được
Ngoài ra còn có một số nghiên cứu về chữ ký số cho các thiết bị di động Asokan vàcác cộng sự [1] đề xuất lược đồ ký số được hỗ trợ bởi server (Server – supportedSignature scheme) cho thông tin di động Dựa trên nghiên cứu của Asokan và các cộng
sự [1] , Ding và các cộng sự [2] đã đưa ra một lược đồ ký số khác được gọi là lược đồ kýđược trợ giúp bởi server Trong lược đồ này, người sử dụng có liên quan đến việc tạo rathẻ chữ ký, cho các tính năng trực tuyến và bảo vệ tấn công DOS Không giống như chữ
ký truyền thống kỹ thuật số thường sử dụng cặp khóa công khai / bí mật để tạo thẻ chữ kýchống chối bỏ, [1] và [2] sử dụng hàm băm 1 chiều để tạo khóa bí mật của bên gửi và sửdụng khóa này để tạo thẻ chữ ký chống chối bỏ
Trang 5Trong báo cáo tiểu luận này tôi xin trình bày lược đồ chữ ký số “Server BasedSignature (SBS)” [3] cho các thiết bị di động, với các tính năng:
Giúp thiết bị di động tạo ra chữ ký số hiệu quả
Giảm liên lạc giữa các bên trong quá trình ký
Cung cấp bảo mật mạnh như các lược đồ ký số truyền thống
Sử dụng một giải thuật ký trong [5], lược đồ này tránh được chi phí tính toán khingười dùng đang xác minh chữ ký được tạo ra từ server mà không mất tính bảo mật Vìvậy lược đồ này xem là hiệu quả hơn [1] và [2]
Phần tiếp theo của báo cáo được tổ chức như sau:
Phần I: Tổng quan về chữ ký số [4]
Phần II: Sơ đồ ký số trên thiết bị cầm tay “Server Based Signature” [3]
Tổng kết
Trang 6PHẦN 1: TỔNG QUAN VỀ CHỮ KÝ SỐ 1.1 Một số khái niệm
1.1.1 Chữ ký số
Để chứng thực nguồn gốc hay hiệu lực của một tài liệu (ví dụ: đơn xin học, giấy
báo nhập học, ), lâu nay người ta dùng chữ ký “tay”, ghi vào phía dưới của mỗi tài liệu Như vậy người ký phải trực tiếp “ký tay” vào tài liệu
Ngày nay các tài liệu được số hóa, người ta cũng có nhu cầu chứng thực nguồngốc hay hiệu lực của các tài liệu này Rõ ràng không thể “ký tay” vào tài liệu, vì chúngkhông được in ấn trên giấy
Những năm 80 của thế kỷ 20, các nhà khoa học đã phát minh ra “chữ ký số” để chứng thực một “tài liệu số” Đó chính là “bản mã” của xâu bít tài liệu
“Chữ ký số” (chữ ký điện tử) trên “tài liệu số” giống như tạo ra “bản mã” của tài
liệu với “khóa lập mã”, ký số trên tài liệu số là ký trên từng bit của tài liệu
Mặt mạnh của “chữ ký số” hơn “chữ ký tay” ở chỗ người ta có thể “ký” vào tài liệu
từ rất xa (trên mạng công khai) Hơn thế nữa, có thể “ký” bằng các thiết bị cầm tay (điện
thoại di động, PDA) tại khắp mọi nơi và di động, miễn là kết nối được vào mạng Đỡ tốnbao thời gian, sức lực, chi phí
“Ký số” thực hiện trên từng bit tài liệu, nên độ dài của “chữ ký số” ít nhất cũng bằng
độ dài của tài liệu Do đó thay vì ký trên tài liệu dài, người ta thường dùng “hàm băm” để tạo “đại diện” cho tài liệu, sau đó mới “Ký số” lên “đại diện” này.
1.1.2 Hàm băm
1.1.2.1 Khái niệm hàm băm
Hàm băm là thuật toán không dùng khóa để mã hóa (ở đây dùng thuật ngữ “băm”
thay cho “mã hóa”), nó có nhiệm vụ “lọc” (băm) tài liệu (bản tin) và cho kết quả là một
Trang 7giá trị “băm” có kích thước cố định, còn gọi là “đại diện tài liệu” hay “đại diện bản tin”,
“đại diện thông điệp”
Hàm băm là hàm một chiều, theo nghĩa giá trị của hàm băm là duy nhất, và từ giá
trị băm này, “khó thể” suy ngược lại được nội dung hay độ dài ban đầu của tài liệu gốc
1.1.2.2 Đặc tính của Hàm băm
Hàm băm h là hàm một chiều (One-way Hash) với các đặc tính sau:
1) Với tài liệu đầu vào (bản tin gốc) x, chỉ thu được giá trị băm duy nhất z = h(x).2) Nếu dữ liệu trong bản tin x bị thay đổi hay bị xóa để thành bản tin x’, thì giá trịbăm h(x’) h(x)
Cho dù chỉ là một sự thay đổi nhỏ, ví dụ chỉ thay đổi 1 bit dữ liệu của bảntin gốc x, thì giá trị băm h(x) của nó cũng vẫn thay đổi Điều này có nghĩa là: haithông điệp khác nhau, thì giá trị băm của chúng cũng khác nhau
3) Nội dung của bản tin gốc “khó” thể suy ra từ giá trị hàm băm của nó Nghĩa là:với thông điệp x thì “dễ” tính được z = h(x), nhưng lại “khó” tính ngược lại được xnếu chỉ biết giá trị băm h(x) (Kể cả khi biết hàm băm h)
Trang 8Với mỗi khóa k K, có thuật toán ký Sig k S, Sig k : P A, có thuật toánkiểm tra chữ ký Ver k V, Ver k : P A đúng, sai, thoả mãn điều kiện sau với mọi
Ngược lại với việc mã hóa, dùng khóa công khai b để lập mã., dùng khóa bímật a để giải mã
Điều này là hoàn toàn tự nhiên, vì “ký” cần giữ bí mật nên phải dùng khóa bí mật a để “ký” Còn “chữ ký” là công khai cho mọi người biết, nên họ dùng
khóa công khai b để kiểm tra
1.3 Yêu cầu của một hệ thống chữ ký số
Hệ thống chữ ký số cần thỏa mãn các yêu cầu sau:
Tính an toàn (security)
Tính hiệu quả (performance):
Chống nhân bản chữ ký
Tính không thể phủ nhận (non-repudiation)
Trang 91.4 Một số sơ đồ ký số
1.4.1 Chữ ký RSA
1.4.1.1 Sơ đồ (Đề xuất năm 1978)
1 Tạo cặp khóa (bí mật, công khai) (a, b) :
Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n, đặt P = A =
Zn
Tính bí mật (n) = (p-1).(q-1)
Chọn khóa công khai b < (n), nguyên tố cung nhau với (n)
Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a*b 1 (mod
(n)
Tập cặp khóa (bí mật, công khai) K = (a, b)/ a, b Zn , a*b 1 (mod
(n))
2 Ký số: Chữ ký trên x P là y = Sig k (x) = x a (mod n), y A (R1)
3 Kiểm tra chữ ký: Verk (x, y) = đúng x y b (mod n) (R2)
1.4.1.2 Độ an toàn của chữ ký RSA
Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký RSA:
o Bài toán tách số nguyên n thành tích của 2 số nguyên tố: n = p*q
o Vì nếu giải được bài toán này thì có thể tính được khóa mật a từ khóacông khai b và phần tử công khai n
1.4.2 Chữ ký Elgamal
1.4.2.1 Sơ đồ (Elgamal đề xuất năm 1985)
1 Tạo cặp khóa (bí mật, công khai) (a, h) :
Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là “khó” giải
Chọn phần tử nguyên thuỷ g Zp* Đặt P = Z p*, A = Z p* x Z p-1
Chọn khóa bí mật là a Zp* Tính khóa công khai h g a mod p
Trang 10 Định nghĩa tập khóa: = {(p, g, a, h): h g a mod p}.
Các giá trị p, g, h được công khai, phải giữ bí mật a
2 Ký số:
Dùng 2 khóa ký: khóa a và khóa ngẫu nhiên bí mật r Zp-1*
o (Vì r Zp-1* , nên nguyên tố cùng p -1, do đó tồn tại r -1 mod (p -1) )
Chữ ký trên x P là y = Sig a (x, r) = (, ), y A (E1)
Trong đó Z p*, Zp-1 :
o = g r mod p và = (x – a * ) * r -1 mod (p -1)
3 Kiểm tra chữ ký:
Ver k (x, , ) = đúng h * g x mod p (E2)
Chú ý: Nếu chữ ký được tính đúng, kiểm thử sẽ thành công vì:
h * g a * g r * mod p g (a + r * ) mod p g x mod p
Do = (x – a * ) * r -1 mod (p -1) nên (a * + r *) x mod 1)
(p-1.4.2.2 Độ an toàn của chữ ký Elgamal
Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký Elgamal:
o Bài toán tính Logarit rời rạc:
Biết khóa công khai h g a mod p
Nên có thể xác định khóa bí mật a bằng cách tính Log g h
1.4.3 Chữ ký DSS
1.4.3.1 Giới thiệu Chuẩn chữ ký số DSS
Chuẩn chữ ký số (DSS: Digital Signature Standard) được đề xuất năm 1991, là cảibiên của sơ đồ chữ ký ElGamal, và được chấp nhận là chuẩn vào năm 1994 để dùng trongmột số lĩnh vực giao dịch ở USA
Trang 11Thông thường tài liệu số được mã hoá và giải mã 1 lần Nhưng chữ ký lại liên
quan đến pháp luật, chữ ký, có thể phải kiểm thử sau nhiều năm đã ký Do đó chữ ký phải
được bảo vệ cẩn thận
Số nguyên tố p phải đủ lớn (chẳng hạn dài cỡ 512 bit) để bảo đảm an toàn, nhiềungười đề nghị nó phải dài 1024 bit Tuy nhiên, độ dài chữ ký theo sơ đồ Elgamal là gấpđôi số bit của p, do đó nếu p dài 512 bit thì độ dài chữ ký là 1024 bit
Trong ứng dụng dùng thẻ thông minh (Smart card) lại mong muốn có chữ kýngắn, nên giải pháp sửa đổi là một mặt dùng p với độ dài từ 512 bit đến 1024 bit (bội của64), mặt khác trong chữ ký (, ), các số , có độ dài biểu diễn ngắn, ví dụ 160 bit Khi
đó chữ ký là 320 bit
Điều này được thực hiện bằng cách dùng nhóm con cyclic Zq* của Zp* thay cho
Zp*, do đó mọi tính toán được thực hiện trong Zp*, nhưng thành phần chữ ký lại thuộc
Zq*
Trong sơ đồ ký Elgamal, công thức tính được sửa đổi thành
= (x + a *) r -1 mod q
Điều kiện kiểm thử h
gx mod p được sửa đổi thành:
Chú ý: Nếu UCLN(x + g * , p-1) = 1 thì -1 mod p tồn tại
1.4.3.2 Sơ đồ Chuẩn chữ ký số DSS
1 Tạo cặp khóa (bí mật, công khai) (a, h) :
Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là “khó” giải
o Chọn q là ước nguyên tố của p-1 Tức là p-1 = t * q hay p = t * q + 1
o (Số nguyên tố p cỡ 512 bit, q cỡ 160 bit)
Chọn g Zp* là căn bậc q của 1 mod p, (g là phần tử sinh của Zp*)
Tính = g t, chọn khóa bí mật a Zp*, tính khóa công khai h a mod p
Đặt P = Z q*, A = Z q* x Z q* , K = (p, q, , a, h)/ a Zp*, h a mod p
) (mod
1 1
Trang 12 Với mỗi khóa (p, q, , a, h), k’ = a bí mật, k” = (p, q, , h) công khai
2 Ký số: Dùng 2 khóa ký: khóa a và khóa ngẫu nhiên bí mật r Z q*
Chữ ký trên x Zp* là Sig k’ (x, r) = (, ), trong đó
o = ( r mod p) mod q, = ((x + a * ) * r -1 mod q
o (Chú ý r Z q*, để bảo đảm tồn tại r -1 mod q)
3 Kiểm tra chữ ký: Với e1 = x * -1 mod q, e2 = * -1 mod q
Ver k” (x, , ) = đúng ( e1 * h e2 mod p) mod q =
1.4.4 Chữ ký không thể phủ định
1.4.4.1 Giới thiệu chữ ký không thể phủ định
Trong phần trước ta đã trình bày một số sơ đồ chữ ký điện tử Trong các sơ đồ đó,việc kiểm thử tính đúng đắn của chữ ký là do người nhận thực hiện Nhằm tránh việcnhân bản chữ ký để sử dụng nhiều lần, tốt nhất là để người gửi tham gia trực tiếp vào việckiểm thử chữ ký Điều đó được thực hiện bằng một giao thức kiểm thử, dưới dạng mộtgiao thức mời hỏi và trả lời
Giả sử tài liệu cùng chữ ký từ G gửi đến N Khi N yêu cầu G cùng kiểm thử chữ
ký, thì một vấn đề nảy sinh là làm sao để ngăn cản G chối bỏ một chữ ký mà anh ta đã
ký, G có thể tuyên bố rằng chữ ký đó là giả mạo ?
Để giải quyết tình huống trên, cần có thêm giao thức chối bỏ, bằng giao thức này,
G có thể chứng minh một chữ ký là giả mạo Nếu G từ chối tham gia vào giao thức đó,thì có thể xem rằng G không chứng minh được chữ ký đó là giả mạo
Như vậy sơ đồ chữ ký không phủ định được gồm 3 phần: một thuật toán ký, mộtgiao thức kiểm thử, và một giao thức chối bỏ
1.4.4.2 Sơ đồ chữ ký không thể phủ định (Chaum - van Antverpen)
*Chuẩn bị các tham số:
Chọn số nguyên tố p sao cho bài toán log rời rạc trong Zp là khó
Trang 132 Giao thức kiểm thử: Dùng khoá công khai k” = (p, g, h)
Với x, y P, người nhận N cùng người gửi G thực hiện giao thức kiểm thử:
p c
p y
p C
Trang 148/ N thử điều kiện D x f1 g f2 (mod p)
9/ N kết luận y là chữ ký giả mạo nếu:
( d * e2)f1 ( D * f2)e1(mod p ) (thay bằng g).
Trang 15PHẦN 2: SƠ ĐỒ KÝ SỐ TRÊN THIẾT BỊ CẦM TAY “SERVER
BASED SIGNATURE”
Chương trước đã trình bày tổng quan về chữ ký số và một số sơ đồ ký số truyền thống Các sơ đồ ký số này đều rất ưu việt Tuy nhiên để áp dụng trên các thiết bị có nănglực tính toán và vòng đời của pin thấp như các thiết bị di động, cầm tay, thì các sơ đồ này
tỏ ra không hiệu quả Trong chương này tôi xin trình bày về một sơ đồ ký số được dùng trong thiết bị di động mà khắc phục được hạn chế của các số đồ truyền thống đó là sơ đồ
“Server Based Signature” [3]
2.1 Sơ đồ ký SBS - Server Based Signature
Sơ đồ SBS dựa trên ý tưởng sử dụng một server ký trung gian tham gia vào quá trình ký, để thực hiện một số tính toán phức tạp tránh tải cho phía clients (các thiết bị di động)
Như đã biết, có nhiều loại dịch vụ chống chối bỏ Hai loại đáng chú ý: Chống chối
bỏ bên gửi (NRS) và chống chối bỏ bên nhận (NRR)
NRS đảm bảo rằng bên gửi thông điệp không thể phủ nhận việc gửi thôngđiệp đó
NRR đảm bảo rằng bên nhận thông điệp không thể phủ nhận đã nhận thôngđiệp đó
Quá trình thực hiện của SBS được minh họa theo hình sau:
Trang 16Hình 1: Quá trình thực hiện của SBS
Bước 1 : Đầu tiên, bên gửi sẽ tạo ra khóa công khai của mình PKsnd, sau đó chọnmột server ký (S) Cuối cùng bên gửi trình định danh của mình, số chữ ký tối đa n,khóa công khai PKsnd và S tới cơ quan chứng thực (CA ) để lấy được một chứngchỉ Dạng của chứng chỉ đó như sau:
Certsnd = SKCA (Bên gửi, n, PKsnd, S)
SKCA đại diện cho khóa bí mật của CA Sau khi chứng chỉ hoàn thành, kếtquả có thể được công bố công khai thông qua một dịch vụ lưu trữ onlinenhư LDAP
Trang 17 Bước 2: Server ký (S) tạo ra hai số nguyên tố lớn p và q và cho m = p × q, φ (m) =
(p - 1) × (q -1) Số d cũng được chọn là e × d = 1 φ mod (m), trong đó e = 3 S giữ(d, p, q) là khóa bí mật của mình và công khai (e, m)
Bước 3: Nếu bên gửi muốn tạo một chữ ký số có nội dung x, đầu tiên nó chọn
ngẫu nhiên hai số r và v, r, v ∈ Zn* Sau đó, nó tính δ = reh(x)(v2 + 1 ) mod m vàgửi ( δ, Ksndi , i) cho S Sau đó, S chọn ngẫu nhiên một số z dương, z < m và gửi
nó lại cho bên gửi Sau khi nhận được số z, bên gửi sẽ chọn ngẫu nhiên một sốnguyên r’ khác và tính b, b = r × r’ Cuối cùng, bên gửi tính được η, ở đó η = be ×(v - z) và gửi nó trở lại S
Bước 4 : S tính γ = η -1 mod m và t = h (Certsnd) d (δ (z2 + 1) η-2)2d mod m, sau đógửi (γ, t) cho bên gửi Khi nhận được (γ, t), bên gửi tính c = (vz + 1) × γ × be = (vz+ 1) (v - z)-1 mod n, và s = t × r2 × r’4 mod m Bộ ba (Certsnd, c, s) là chữ ký củathông điệp x Bởi vì se ≡ h (Certsnd) h(x)2(c2 + 1)2 mod m [5] , vì vậy tất cả mọingười có thể xác minh chữ ký (Certsnd, c, s) của thông điệp x hiệu quả Sau khikiểm tra chữ ký, bên gửi gửi (Certsnd, c, s) và Ksndi- 1 lại cho server ký
S xác minh chữ ký và Ksndi = h (Ksndi -1) Nếu tất cả lại kết quả là chính xác, S sẽ gửithông điệp s với chứ ký của nó tới bên nhận (Certsnd, c, s), Ksndi – 1 và Ksndi bao gồm thẻNRS
2.1.2 Giao thức ký NRS và NRR của SBS
Phần này sẽ giải quyết vấn đề chống chối bỏ của bên nhận (NRR)
NRR được giải quyết dựa trên lược đồ NRS của SBS
Như quá trình trên từ bước 1 đến bước 4, bên nhận cũng tạo ra một chữ ký(Certrcv, C’, s’) (Certrcv, C’, s’) được gọi là thẻ NRR
Trong bước 4, trước khi bên gửi gửi Ksndi – 1 tới server ký, bên nhận sẽ gửithẻ NRR này với khóa công khai của nó Kj
rcv cho bên nhận
Sau đó, bên nhận gửi Ksndi – 1 tới server ký sau khi xác minh thẻ NRR Saukhi server ký nhận được cả ((Certsnd, c, s), i, Ksndi – 1, Ksndi), nó gửi chữ kýcủa bên gửi là ((Certsnd, c, s), i, Ksndi – 1, Ksndi) cho bên nhận và Krcvi tới chobên gửi Khi đó, quá trình SBS hoàn thành
2.1.3 Phân tích chối bỏ
a Bên gửi chối bỏ
Trong trường hợp bên gửi tuyên bố nó không gửi thông được ký bởi thẻ NRS, bênnhận có thể cung câp thẻ, thông điệp, chứng chỉ và chữ ký số cho quan tòa Quá trìnhquan tòa xác minh như sau: