Tải bản đầy đủ (.docx) (25 trang)

TIỂU LUẬN MÔN AN TOÀN THÔNG TIN CÁC PHƯƠNG PHÁP KÝ SỐ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (303.34 KB, 25 trang )

Tiểu luận An toàn thông tin – Các phương pháp ký số
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DUY TÂN
KHOA SAU ĐẠI HỌC
TIỂU LUẬN
MÔN AN TOÀN THÔNG TIN
ĐỀ TÀI: CÁC PHƯƠNG PHÁP KÝ SỐ
GVHD : PGS.TS.Trịnh Nhật Tiến.
Học viên : Huỳnh Thị Phương Uyển.
Lớp : K7MCS.
Đà Nẵng, tháng 5 năm 2013
1
Tiểu luận An toàn thông tin – Các phương pháp ký số
LỜI MỞ ĐẦU
Ngày nay, với sự bùng nổ của mạng Internet, mạng máy tính đang ngày càng đóng
vai trò thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội, và khi nó trở thành
phương tiện điều hành các hệ thống thì nhu cầu bảo mật thông tin được đặt lên hàng
đầu.
Vấn đề an toàn thông tin (ATTT) trong các giao dịch, trao đổi thông tin luôn là
một yêu cầu cần phải có đối với mọi hoạt động trao đổi dữ liệu, đặc biệt là hoạt động
thương mại điện tử vì các quy trình giao dịch được thực hiện qua Internet - một
môi trường truyền thông công cộng.
Ngày càng có nhiều cá nhân và tổ chức sử dụng các tài liệu số thay cho tài liệu
giấy để thực hiện các giao dịch hàng này. Bằng cách giảm sự lệ thuộc vào tài liệu giấy,
chúng ta đang bảo vệ môi trường và tiết kiệm nguồn tài nguyên cho trái đất. Chữ ký số
hỗ trợ cho sự thay đổi này bằng cách cung cấp sự đảm bảo về tính hiệu lực và tính xác
thực của các tài liệu số. Việc sử dụng chữ ký số là một giải pháp hữu hiệu, ngày càng
được ứng dụng nhiều trong thực tế, áp dụng nhiều trong những lĩnh vực khác như ngân
hàng, viễn thông…. Đây cũng chính là lý do tôi chon đề tài “Các phương pháp ký số”
làm bài tiểu luận cho mình.
Trong thời gian hoàn thành bài tiểu luận tôi đã nhận được sự hướng dẫn tận tình


của Thầy PGS. TS. Trịnh Nhật Tiến. Tôi xin chân thành cảm ơn tới sự giúp đỡ tận tình
đó.
Trân trọng cảm ơn
1
2
Tiểu luận An toàn thông tin – Các phương pháp ký số
MỤC LỤC
CÁC PHƯƠNG PHÁP KÝ SỐ
1 TỔNG QUAN VỀ CHỮ KÝ SỐ
1.1 Giới thiệu chung
Để chứng thực nguồn gốc hay hiệu lực của một tài liệu, 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. Chữ ký “ tay” trên một văn bản là một minh
chứng về “bản quyền” hoặc ít nhất cũng là sự “tán đồng, thừa nhận” các nội dung trong
văn bản. Chẳng hạn như trên việc ký vào phiếu nhận tiền từ ngân hàng, hợp đồng mua
bán, chuyển nhượng, thừa kế, tố tụng….
Việc ký trên văn bản giấy có thể giả mạo chữ ký, trong thế giới máy tính thì vấn đề
ký như trong thực tế sẽ gặp phải nhiều khó khăn: các dòng thông tin trên máy tính có
thể thay đổi dễ dàng, hình ảnh của chữ ký tay của một người cũng dễ dàng cho “sang –
truyền” từ một văn bản này sang một văn bản khác, và việc thay đổi nội dung một văn
bản điện tử (sau khi ký) cũng chẳng để lại dấu vết gì về phương diện “tẩy, xóa”…
Ngoài ra, ngày nay các tài liệu được số hóa, người ta có nhu cầu chứng thực nguồn
gốc của các tài liệu này. Rõ ràng không thể “ký tay” vào các tài liệu vì chúng không
được in ấn trên giấy.
Để khắc phục được những đặc tính như trên, những năm 80 của thế kỷ 20, các nhà
khoa học đã phát minh ra “chữ ký số”
3
Tiểu luận An toàn thông tin – Các phương pháp ký số
- Người gửi (chủ nhân của văn bản) ký văn bản bằng cách mã hóa nó với khóa bí
mật của mình
- Người gửi chuyển văn bản đã ký cho người nhận

- Người nhận văn bản kiểm tra chữ ký bằng việc sử dụng chìa khóa công khai của
người gửi để giải mã văn bản.
1.2 Khái niệm về chữ ký số
1.2.1 Khái niệm
Chữ ký số là mô hình sử dụng các kỹ thuật mật mã để gắn với mỗi người sử dụng
một cặp khóa công khai - bí mật và qua đó có thể ký các văn bản điện tử cũng như trao
đổi các thông tin mật. Khóa công khai thường được phân phối thông qua chứng thực
khóa công khai. Quá trình sử dụng chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm
tra chữ ký.
Các thuật toán chữ ký số cho phép xác định nguồn gốc, bảo đảm tính toàn vẹn của dữ
liệu được truyền đi, đồng thời nó cũng bảo đảm tính không thể phủ nhận của thực thế đã
ký thông tin.
1.2.2 Sơ đồ chữ ký số
Sơ đồ chữ ký số là bộ năm (P, A, K, S, V ), trong đó:
P là tập hữu hạn các văn bản có thể.
A là tập hữu hạn các chữ ký có thể.
K là tập hữu hạn các khoá có thể.
S là tập các thuật toán ký.
V là tập các thuật toán kiểm thử.
Với mỗi k ∈ K, có thuật toán ký Sig
k
∈ S, Sig
k
: P  A, và thuật toán kiểm thử
Ver
k
∈ V, Ver
k
: P x K  {đúng, sai}, thoả mãn điều kiện sau với mọi x ∈ P, y ∈ A:
Đúng, nếu y = Sig

k
(x)
4
Tiểu luận An toàn thông tin – Các phương pháp ký số
Ver
k
(x, y) =
Sai, nếu y ≠ Sig
k
(x)
Người ta thường dùng hệ mã hóa công khai để lập ‘sơ đồ chữ ký số’ . Với khóa bí
mật a dùng làm khóa ‘ký’, khóa công khai b dùng làm khóa kiểm tra chữ ký.
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ã.
1.3 So sánh chữ ký số với chữ ký thông thường trên văn bản
Chữ ký số và chữ ký thường (chữ ký viết tay) có nhiều điểm khác nhau:
- Về tài liệu được ký: Với tài liệu thông thường, nó là một phần vật lý của tài liệu.
Ngược lại, chữ ký số không phải theo kiểu vật lý gắn vào thông báo nên không nhìn
thấy trên bức điện
- Về vấn đề kiểm tra chữ ký: Chữ ký thông thường được kiểm tra bằng cách so sánh
nó với các chữ ký xác thực khác (chữ ký mẫu). Điểm yếu của chữ ký thông thường là
không an toàn, và dễ có thể giả mạo. Ngược lại, chữ ký số lại được kiểm tra nhờ dùng
thuật toán kiểm tra công khai, bất kỳ ai cũng có thể kiểm tra được.
Việc dùng một sơ đồ chữ ký an toàn có thể ngăn chặn được giả mạo.
2 PHÂN LOẠI CÁC CHỮ KÝ SỐ
Có nhiều loại chữ ký số tùy theo cách phân loại, sau đây xin giới thiệu một số cách
phân loại chữ ký số.
2.1 Phân loại chữ ký số theo đặc trưng kiểm tra chữ ký
2.1.1 Chữ ký khôi phục thông điệp
Là loại chữ ký, trong đó người gửi chỉ cần gửi “chữ ký”, người nhận có thể khôi

phục lại được thông điệp, đã được “ký” bởi “chữ ký” này.
Ví dụ: Chữ ký RSA là chữ ký khôi phục thông điệp, sẽ trình bày trong mục 3.
5
Tiểu luận An toàn thông tin – Các phương pháp ký số
2.1.2 Chữ ký không thể khôi phục được thông điệp
Là loại chữ ký, trong đó người gửi cần gửi “chữ ký” và phải gửi kèm cả thông điệp
đã được “ký” bởi “chữ ký” này. Ngược lại, người nhận sẽ không có được thông điệp
gốc.
Ví dụ: Chữ ký Elgamal là chữ ký đi kèm thông điệp
2.2 Phân loại chữ ký theo mức an toàn
2.2.1 Chữ ký “không thể phủ nhận”
Nhằm tránh việc nhâ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ệc kiể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ột giao thức mời hỏi và trả lời.
Ví dụ: Chữ ký không thể phủ định Chaum - van Antwerpen
2.2.2 Chữ ký “một lần”
Để bảo đảm an toàn, “Khóa ký” chỉ dùng 1 lần (one- time) trên 1 tài liệu.
Ví dụ: Chữ ký Lamport, chữ ký Fail - Stop (Van Heyst & Pedersen).
2.3 Phân loại chữ ký theo ứng dụng đặc trưng.
Chữ ký “mù” ( Blind Signature)
Chữ ký “nhóm” ( Group Signature)
Chữ ký “bội” ( Multy Signature)
Chữ ký “mù nhóm” ( Blind Group Signature)
Chữ ký “mù bội” ( Blind Multy Signature)
3 CHỮ KÝ RSA
3.1 Sơ đồ chữ ký RSA
Sơ đồ
- Tạo cặp khóa (bí mật, công khai) (a, b) :
6
Tiểu luận An toàn thông tin – Các phương pháp ký số

+Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n.
Sao cho tách n thành tích của p và q, là BT “khó”,
đặt P = C = Z
n
Tính φ(n) = (p-1).(q-1). Bí mật φ(n).
+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 ∈ Z
φ
(n)
, a*b ≡ 1 (mod φ(n))}.
Với Bản rõ x ∈ P và Bản mã y ∈ C, định nghĩa:
- Ký:
Chữ ký trên bản rõ x ∈ P là y = Sig
k
(x) = x
a
( mod n) ; y ∈ A
- Kiểm tra chữ ký:
Ver
k
(x,y) = đúng  x = y
b
( mod n)
3.2 Ví dụ
- Tạo cặp khóa (a, b)
Chọn bí mật số nguyên tố p= 3, q= 5, tính n = p * q = 15, công khai n.
Đặt P = C = Z
n
, tính bí mật φ(n) = (p-1). (q-1) = 2 * 4 = 8.

+ Chọn khóa công khai b là nguyên tố với φ(n), tức là ƯCLN(b, φ(n)) = 1,
ví dụ chọn b = 3.
+ 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ừ a*b ≡ 1 (mod φ(n)), ta nhận được khóa bí mật a = 3.
- Ký số
x = 2 ∈ P
y = Sig
k
(x) = x
a
( mod n) = 2
3
( mod 15) = 8
7
Tiểu luận An toàn thông tin – Các phương pháp ký số
- Kiểm tra chữ Ký.
Ver
k
(x,y) = đúng  x = y
b
( mod n)  2 = 8
3
( mod 15)
Như vậy, việc ký là mã hóa, việc kiểm tra lại chính là việc giãi mã.
Việc ‘ký số’ vào x tương ứng với việc ‘mã hõa’ tài liệu x
Việc kiểm tra chữ ký chính là việc giãi mã ‘chữ ký’, để kiểm tra xem tài liệu đã
giãi mã có đúng tài liệu trước khi ký không.
3.3 Độ an toàn chữ ký RSA
1). Chữ ký RSA là tất định, tức là với một bản rõ x và một khóa bí mật a, thì chỉ
có một bản mã y.

2). Chữ ký RSA an toàn khi giữ được bí mật khoá giải mã a, p, q, φ(n).
Nếu biết được p và q, thì thám mã dễ dàng tính được φ(n) = (q-1)*(p-1).
Nếu biết được φ(n), thì thám mã sẽ tính được a theo thuật toán Euclide mở rộng.
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 chứ ký 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.
4 CHỮ KÝ RABIN
Sơ đồ chữ ký của Rabin rất giống sơ đồ chữ ký RSA. Sự khác nhau giữa chúng chỉ
nằm ở quá trình thẩm tra chữ ký. Trong sơ đồ chữ ký RSA thì tham số e là số lẻ bởi vì
thỏa mãn điều kiện gcd(e,
)(N
φ
)=1,
)(N
φ
là số chẳn, còn trong sơ đồ Rabin e=2. Chúng
ta xem cụ thể quá trình ký của sơ đồ Rabin.
Sơ đồ chữ ký Rabin:
4.1 Tạo khóa
Quá trình tạo khóa của sơ đồ chữ ký Rabin giống như quá trình tạo khóa của sơ đồ
chữ ký RSA. Tức là chọn hai số nguyên tố khác nhau p và q có độ lớn gần bằng nhau và
tính N=pq. Số N là khóa mở của Alice, còn số p, q là khóa mật.
8
Tiểu luận An toàn thông tin – Các phương pháp ký số
4.2 Tạo chữ ký
Để tạo chữ ký cho bức điện
*
N
Zm∈
Alice tính giá trị:

)(mod
2/1
Nms ←
.
ở đây chúng ta thấy để tạo nên chữ ký s thì m phải thuộc QR
N
. Alice có thể chọn cơ chế
thích hợp để tạo nên m. Chú ý có đến ¼ số phần tử của nhóm
*
N
Z
thuộc về QR
N
nên
Alice hình thành m là không khó.
4.3 Thẩm tra chữ ký
Để thẩm tra chữ ký Bob xem thủ tục sau:
Verify
(N)
(m,s)=TRUE, nếu như
)(mod
2
Nsm ≡
.
Sơ đồ chữ ký Rabin có nhưng ưu điểm hơn so với sơ đồ RSA. Thứ nhất là giả mạo
chữ ký là phức tạp như là phân tích số nguyên ra thừa số nguyên tố. Thứ hai là việc
thẩm tra chữ ký hoàn thành nhanh hơn và hòan toàn thuận lợi thực thi các ứng dụng.
5 CHỮ KÝ ELGAMAL
Sơ đồ chữ ký Elgamal được giới thiệu năm 1985. Sơ đồ này thiết kế dành riêng cho
chữ ký số khác với sơ đồ RSA dành chung cho cả hệ thống mã công khai và chữ ký số.

5.1 Sơ đồ chữ ký số Elgamal:
5.1.1 Tạo khóa
Quá trình tạo khóa giống như qúa trình tạo khóa của hệ mật Elgamal, tức là Alic
chọn số nguyên tố p đủ lớn để bài toán logarith rời rạc trên Z
p
là khó giải, và chọn
*
p
Z∈
α
là phần tử nguyên thủy, chọn
1−< px
A
là số nguyên làm khóa mật và tính khóa
công cộng y
A
=
)(mod p
A
x
α
.
9
Tiểu luận An toàn thông tin – Các phương pháp ký số
5.1.2 Tạo chữ ký
Để ký lên bức điện m
*
N
Z∈
Alice tạo ra số ngẫu nhiên

k
thỏa mãn
1−< pk

UCLN(k,p-1)=1 và hình thành nên chữ ký là cặp (r,s), ở đây
).1)(mod(
),(mod
1
−−←


prxmks
pr
A
k
α
5.1.3 Kiểm tra chữ ký
Để thẩm tra chữ ký (r,s) Bob xem kết quả của hàm kiểm tra:
Verify
(
α
,yA,p)
(m,(r,s))=TRUE, nếu như r < p và
)(mod pry
msr
A
α

.
Chúng ta xem sự đúng đắn của phương trình thẩm tra chữ ký:

)(mod)(mod
)(
1
ppry
m
rxmkkrx
sr
A
AA
ααα
==
−⋅⋅

.
Chúng ta thấy Alice hình thành chữ ký với khóa mật x
A
và cả số nguyên ngẫu nhiên k.
Việc thẩm tra chữ ký chỉ bằng thông tin công khai.
5.2 Ví dụ
Giả sử Alice chọn p=467,
2=
α
,x
A
=127. Alice đi tính khóa công khai y
A
)(mod py
A
x
A

α
=
=21
27
mod 467=132
Alice muốn ký lên bức điện m=100, thì Alice chọn số ngẫu nhiên k, ví dụ Alice chọn
k=213 (UCLN(213,467)=1) và tính 213
-1
(mod 466)=431. Khi đó:
r=2
213
mod 467=29
s=431(100-127.29) mod 466=51
Bob hay bất kỳ ai cũng có thể thẩm tra được chữ ký này bằng cách:
)467(mod1892
)467(mod18929132
100
5129


Vậy chữ ký là hợp lệ.
10
Tiểu luận An toàn thông tin – Các phương pháp ký số
5.3 Đánh giá độ an toàn của sơ đồ chữ ký Elgamal
Cánh báo 1.
Đầu tiên để kiểm tra chữ ký thì cần phải kiểm tra bất đẳng thức r < p. Nếu như r > p
thì có khả năng bị tấn công, cách này đề xuất bởi Bleichenbacher. Giả sử (r,s) là chữ ký
của bức điện m. Tội phạm có thể giã mạo chữ ký với một bức điện bất kỳ m’ bằng cách
hình thành như sau:
1.

)1(mod'
1
−←

pmmu
2.
)1(mod'
−=
psus
.
3. Tính r’, thỏa mãn điều kiện
)1(mod'
−≡
prur

)(mod' prr

. Điều này có thể làm
được nhờ áp dụng định lý phần dư Trung Hoa.
Chúng ta thấy bức điện m’ với chữ ký (r’,s’) thỏa mãn điều kiện:
)(mod)('
'''
pryryry
mmuusr
A
suru
A
sr
A
αα

≡≡≡=
Tấn công kiểu như thế này là không thể nếu như r < p, bởi vì trong trường hợp này
giá trị r’ được tính toán theo bước 3 ứng dụng định lý phần dư Trung Hoa theo modulo
p(p-1).
Cảnh báo 2.
Cảnh báo này cũng hình thành bởi Bleichenbacher. Alice cần phải lựa chọn phần tử
ngẫu nhiên
α
từ nhóm
*
p
Z
. Nếu như tham số này không được lựa chọn bởi Alice (điều
này là có thể, khi hệ thống người sử dụng có một tham số mở
α
và p), thì cần phải kiểm
tra một số lần rằng
α
là số ngẫu nhiên (điều này có thể áp dụng hàm tạo số giả ngẫu
nhiên).
Giả sử rằng các tham số mở
α
và p được lựa chọn bởi tội phạm Oscar. Tham số p
hình thành trên cơ sở phương pháp chuẩn: Giả sử p-1=bq, với q là số nguyên tố đủ lớn,
11
Tiểu luận An toàn thông tin – Các phương pháp ký số
nhưng b có thể có thừa số nguyên tố nhỏ, và tính toán logarithm trong nhóm bậc b
không khó).
Oscar hình thành tham số
α

theo cách sau:
)(mod p
t
βα
=
,
Với
cq
=
β
và c < b.
Chúng ta biết rằng việc tính toán logarith rời rạc của khóa mở y
A
là bài toán khó.
Thế nhưng tính toán logarith của độ lớn
q
A
y
theo cơ số
q
α
không tạo nên một sự khó
khoăn nào. Logarith rời rạc này bằng
)(mod bxz
A

, có nghĩa thỏa mãn đồng dư thức
sau:
)(mod)( py
zqq

A
α
=
Khi tính được giá trị z thì Oscar có thể giả mạo chữ ký của Alice bằng các lệnh sau
đây:
).1)(mod(
,
−−←
=←
pcqzmts
cqr
β
Chúng ta xem việc thẩm tra chữ ký:
)(mod)(
)(
pyry
mcqzmcqzcqzmtcq
A
sr
A
αααβ
≡≡≡
−−
Rõ ràng chúng ta thấy cặp (r,s) là chữ ký của bức điện m, nhưng việc tạo thành chữ
ký này không có sự tham gia của khóa mật x
A
(mà có sự tham gia của số x
A
(mod b)).
Chú ý rằng trong quá trình hình thành chữ ký giả mạo thì số q là ước số của r. Dẫn

đên cách tấn công của Bleichenbacher có thể ngăn chặn nếu như trong lúc kiểm tra Bob
kiểm tra điều kiện q không là ước số của r (giả sử rằng quá trình lựa chon p thì q là tham
số mở).
12
Tiểu luận An toàn thông tin – Các phương pháp ký số
Cảnh báo 3.
Trong cảnh báo này thì liên quan đến chiều dài của tham số k. Tạo ra chữ ký theo sơ
đồ Elgamal là thuật toán ngâu nhiên bởi vì tham số k được hình thành ngẫu nhiên.
Alice không bao giờ dùng khóa để ký các bức điện khác nhau là có thời gian sống
ngắn. Nếu như tham số k sử dụng trở lại đối với chữ ký của hai bức điện m
1
và m
2
, mà
hai bức điện thỏa mãn
)1(mod
21
−≠ pmm
, thì từ phương trình tính s của sơ đồ chữ ký
chúng ta có:
)1(mod)(
2121
−−≡−
pmmssl
.
Bởi vì
)1(mod
1



pl
tồn tại, và từ bất đẳng thức
)1(mod
21
−≠ pmm
dẫn đến:
)1)(mod/()(
2121
1
−−−≡

pmmssl
,
Có nghĩa
1−
l
bị lộ. Nhưng quan trọng nhất là khóa mật Alice x
A
có thể tính toán từ
công thức hình thành s, và suy ra x
A
theo công thức:
)1(mod/)(
11
−−≡ prlsmx
A
.
Điều này cho chúng ta thấy chỉ được sử dụng tham số k một lần duy nhất.
6 HỌ CHỮ KÝ ELGAMAL
Sau khi đăng sơ đồ chữ ký Elgamal, thì sau đó một số cải tiến của sơ đồ này xuất

hiện. Quan trọng nhất trong số đó là sơ đồ chữ ký Schnorr và chuẩn chữ ký DSS
(Digital Signature Standard).
6.1 Sơ đồ chữ ký Schnorr
Đây là sơ đồ chữ ký thuộc họ của Elgamal nhưng có những tính chất tốt hơn so với
sơ đồ Elgamal.
Sơ đồ chữ ký được cho ở dưới
13
Tiểu luận An toàn thông tin – Các phương pháp ký số
Thiết lập tham số hệ thống:
1 Chọn hai số nguyên tố p và q, thỏa mãn điều kiện q|p-1. Và các số này được chọn
sao cho kích thước
1024=p

160=q
.
2 Lựa chọn phần tử
*
p
Zg ∈
có bậc là q (Để làm điều này thì cần phải lấy phần tử
*
p
Zf ∈
và thực hiện lệnh
)(mod
/)1(
pfg
qp−

. Nếu như g=1 thì lặp lại lệnh đên

khi
1≠g
).
3 Lựa chọn hàm hash H:
{ }
q
Z
*
1,0
(Ví dụ có thể chọn SHA-1).
Các tham số (p,q,g,H) sẽ phân bố giữa các người dùng hệ thống.
Hình thành khóa mật và khóa công cộng:
Alice tạo ra số ngẫu nhiên
*
p
Zx ∈
và thực hiện lệnh:
)(mod pgy
x−

.
Các tham số công cộng là (p,q,g,y,H) còn x là khóa mật.
Tạo chữ ký:
Để ký lên bức điện
{ }
*
1,0∈m
, thì Alice tạo ra số ngẫu nhiên
q
Zl


và hình thành cặp
(e,s), ở đây:
).(mod
),||(
),(mod
qxels
rmHe
pgr
l
+←


Thẩm tra chữ ký:
Để thẩm tra chữ ký, Bob thực hiện các bước sau:
),'||('
),(mod'
rmHe
pygr
es


Verify
(p,q,g,y,h)
(m,(s,e))=TRUE, nếu như e’=e.
14
Tiểu luận An toàn thông tin – Các phương pháp ký số
Chú ý rằng khi tạo ra các tham số hệ thống, việc tạo phần tử sinh g có thể được xác
định rất nhanh bởi vì q|p-1.
Việc thẩm tra chữ ký đúng nếu như cặp (m,(s,e)) đúng là cặp “bức điện- chữ ký”,

được tạo ra bởi Alice. Nghĩa là:
)(mod' prgygyygygr
leleelxees
≡≡≡≡≡
−+
.
Như chúng ta thấy việc ứng dụng nhóm con bậc q của nhóm
p
Z
cho phép quá trình
ký của sơ đồ Schonorr nhanh hơn nhiều so với sơ đồ Elgamal: Để chuyển chữ ký của
Schonorr cần 2|q| bít, trong khi đó để chuyển chữ ký Elgamal cần 2|p| bít. Chữ ký ngắn
hơn rất nhiều cho phép giảm số lệnh cần thiết để hình thành chữ ký và thẩm định chữ
ký: trong sơ đồ Schonorr tốn O(
)loglog
2
2
pq
, còn trong sơ đồ Elgamal cần O(
p
3
log
).
6.2 Sơ đồ chữ ký DSS
Đây cũng là phiên bản cải tiến của Elgamal. Nó được để xuất năm 1991, tuy nhiên
nó được chấp nhận làm chuẩn từ 01/12/1994. Giống như sơ đồ chữ ký Schnorr, chuẩn
chữ ký DSS cũng có những ưu điểm so với Elgamal.
Sơ đồ chữ ký được miêu tả như sau:
Thiết lập tham số hệ thống:
Các tham số hệ thống giống như sơ đồ chữ ký Schnorr. Và chuẩn DSS chọn hàm

hash là SHA-1. Các tham số của hệ thống là (p,q,g,H) xem sơ đồ Schnorr.
Tạo khóa:
Alice tạo ra số ngẫu nhiên
p
Zx ∈
là khóa mật và tính khóa công cộng:
)(mod pgy
x

.
Tham số công khai của Alice bao gồm (p,q,g,y,H) còn x là tham số mật.
Hình thành chữ ký
15
Tiểu luận An toàn thông tin – Các phương pháp ký số
Để ký lên bức điện m
{ }
*
1,0∈
, Alice tạo số ngẫu nhiên
p
Zl ∈
và hình thành nên cặp
(r,s), với
).)(mod)((
),))(mod(mod(
1
qxrmHls
qpgr
l
+←



Thẩm tra chữ ký
Để thẩm tra chữ ký, Bob dùng cặp (m,(r,s)) cho tính toán sau
),(mod
),(mod)(
),(mod
2
1
1
qrwu
qwmHu
qsw




Verify(p,q,g,y,h)(m,(r,s))=TRUE, nếu như
)))(mod(mod(
21
qpygr
uu
=
.
Chúng ta xem việc kiểm tra chữ ký là hợp lý:
Đặt
))](mod)(mod[)))(mod(mod(
)(mod)(mod)(
11
21

qpggqpygv
qxrsqsmH
uu
−−
==
rqpgqpgv
lqxrmHs
===
+

))](mod(mod[))](mod)(mod[(
))(mod)((
1
6.3 Ví dụ
Lấy q = 239, p = 32*q+1 = 7649, 3 là phần tử nguyên thuỷ trong Z
7649
,
α = 3
32
mod 7649 = 7098, a = 85.
Khi đú β = α
a
mod p = 7098
85
mod 7649 = 5387.
Giả sử G muốn ký trờn văn bản x = 1246 và chọn số ngẫu nhiên k = 58. Ta có:
k
-1
mod q = 58
-1

mod 239 = 136.
γ = (α
k
mod p) mod q = (7098
58
mod 7649)

mod 239 = 593 mod 239 = 115
δ = (x+ a*γ)*k
-1
mod q = (1246+85*115)*

136
-1
mod 239 = 87.
Khi đó(115, 87) là chữ ký đúng đối với văn bản x = 1246, vì:
δ
-1
= 87
-1
mod 239 = 11
e
1
= x* δ
-1
mod q = 1246*11 mod 239 = 83
16
Tiểu luận An toàn thông tin – Các phương pháp ký số
e
2

= γ *δ
-1
mod q = 115*11 mod 239 = 70
Xột điều kiện kiểm thử :
γβα
=qp
ee
mod)mod*(
21
⇔ (7098
83
*5387
70
mod 7649) mod 239 = 593 mod 239 = 115 = γ.
Vì vậy chữ ký là đúng.
Khi DSS được đưa ra năm 1991, cú một vài bình phẩm. Độ dài cố định của p là
512 bit. Nhiều người muốn p có thể thay đổi lớn hơn nếu muốn. Vì thế NIST sửa đổi là
p có độ dài thay đổi là các bội của 64 cận từ 512 đến 1024 bit.
Nếu RSA sử dụng sơ đồ chữ ký và thành phần kiểm thử chữ ký là rất nhỏ thì việc
kiểm thử được thực hiện nhanh hơn việc ký, thì trong DSS, thuật toán ký nhanh hơn là
kiểm thử. Điều này dẫn đến hai vấn đề:
1. Một văn bản chỉ được ký một lần nhưng nó lại được kiểm thử nhiều lần nên người ta
muốn thuật toán kiểm thử nhanh hơn.
2. Máy tính ký và kiểm thử như thế nào? Nhiều ứng dụng sử dụng thẻ thông minh với khả
năng có hạn, kết nối với 1 máy tính mạnh hơn, vì vậy nên xây dựng sơ đồ chữ ký ít liên
quan đến thẻ. Nhưng 1 tình huống đặt ra là một thẻ thụng minh có thể sinh ra chữ ký và
cũng có thể kiểm thử chữ ký do vậy rất khó kết luận.
NIST trả lời rằng thời gian kiểm thử và sinh chữ ký, cái nào nhanh hơn không
quan trọng miễn là đủ nhanh.
7 CHỮ KÝ KHÔNG THỂ CHỐI BỎ

7.1 Khái niệm
Trong các sơ đồ trước, 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ệc nhâ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ệc kiể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ột giao thức mời hỏi và trả lời.
Sơ đồ chữ ký không chối được gồm ba phần: thuật toán ký, giao thức xác minh và
giao thức từ chối.
17
Tiểu luận An toàn thông tin – Các phương pháp ký số
7.2 Sơ đồ chữ ký không thể chối bỏ Chaum – Van Antwerpen
Sơ đồ chữ ký không chối được do Chaum- Antwerpen đưa ra năm 1989. Chúng ta sẽ
thấy một điểm yếu của chữ ký là hiện tượng nhân bản chữ ký của Alice, và phân phối
chữ ký này bằng phương pháp điện tử mà không hề có sự đồng ý của Alice. Để tránh
trường hợp này thì chúng ta dùng giao thức “hỏi và trả lời”, tức là có sự tham gia của
Alice để xác minh chữ ký. Nhưng có trường hợp xảy ra là Alice có thể tuyên bố chữ ký
hợp lệ là giả mạo và từ chối xác minh nó hoặc thực hiện giao thức theo cách để chữ ký
không thể xác minh được. Để ngăn chặn tình huống này xãy ra, sơ đồ chữ ký không
chối được đã kết hợp với giao thức từ chối, theo giao thức này, Alice có thể chứng mình
với mọi người là chữ ký là giả mạo, điều này đồng nghĩa với việc nếu Alice không nhận
tham gia vào giao thức từ chối, là bằng chứng chứng tỏ chữ ký trên là thật.
Chuẩn bị các tham số
+ Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong là khó giải, đồng thời
thỏa mãn điều kiện p = 2 * q + 1, q cũng là nguyên tố.
+ Chọn g ∈ là phần tử có cấp q.
+ Chọn 1 ≤ a ≤ q – 1, tính h = mod p.
+ G là nhóm con (theo phép nhân) cấp q sinh ra bởi g của
+ Tập hữu hạn các văn bản có thể P, tập hữu hạn các chữ ký có thể A
+ P = A = G
+ Khóa công khai được định nghĩa pk = (p, g, h ), khóa bí mật sk = a.
Thuật toán ký

Dùng khóa bí mật sk ở trên để ký lên thông điệp x, chữ ký là:
y = Sig
sk
(x) = x
a
( mod p)
Giao thức kiểm thử
Bob muốn xác thực chữ ký y trên thông điệp x được ký bởi Alice. Giao
thức được thực hiện như sau:
18
Tiểu luận An toàn thông tin – Các phương pháp ký số
- Bob chọn ngẫu nhiên , ∈
- Bob tính c = mod p và gửi cho Alice.
- Alice tính d = mod p và gửi cho Bob.
- Bob chấp nhận y là chữ ký đúng trên x khi và chỉ khi  ≡ mod p
Giao thức chối bỏ chữ ký
- Bob chọn ngẫu nhiên , ∈
- Bob tính c = mod p và gửi cho Alice.
- Alice tính d = mod p và gửi cho Bob.
- Bob kiểm tra  ≢ mod p
- Bob chọn ngẫu nhiên , ∈
- Bob tính C = mod p và gửi cho Alice
- Alice tính D = mod p và gửi cho Bob
- Bob kiểm tra  ≢ mod p
- Bob kết luận chữ ký y thực sự là giả mạo nếu:
≡  
7.3 Các tính chất của sơ đồ Chaum - van Antverpen
Định lý 1:
Nếu y ≡ x
a

mod p, tức y là chữ ký đúng đối với x, thì theo giao thức kiểm thử, chắc chắn
N sẽ chấp nhận y là chữ ký đúng đối với x.
Chứng minh :
Giả sử y ≡ x
a
mod p. Khi đó y
a-1
≡ x mod p. (chú ý rằng tất cả các số mũ được
tính theo mod q).
Ta cũng có β
a-1
≡ mod q. Khi đó y
a-1
≡ x mod p. Do đó
19
Tiểu luận An toàn thông tin – Các phương pháp ký số

)(mod
)(mod
)(mod
px
py
pcd
ee
ee
a
21
21
1
α

β
∗≡
∗≡


Vì vậy theo giao thức kiểm thử, N chấp nhận y là chữ ký đúng đối với x.
Đối với giao thức chối bỏ ta có định lý sau đây:
Định lý 2 :
Nếu y # x
a
mod p, và cả G và N tuân theo giao thức chối bỏ thì N sẽ chứng minh chữ ký
đó là giả mạo . Tức đồng dư thức

)(mod)*()*( pDd
effe
1212
−−

αα

là đúng
Chứng minh :
Vì c và d được tính theo các bước 2, 3 của giao thức, và vì β ≡ α
a
mod p nên
bất đồng dư thức ở bước 4 và bước 8 trong giao thức chối bỏ là đúng.
Tiếp theo tính:
)(mod
)(mod**
)(mod**

)(mod))*(()*(
py
py
py
pyd
afe
fefeafe
feafeafe
fe
a
eefe
1
11
1212
1
11
12
1
12
1
11
12
1
2112


−−





∗≡


−−
αα
αβ
αβα
Tương tự, vì C và D được tính theo các bước 6 và 7 của giao thức, nên ta có:
)(mod)*( pyD
afeef
1
1112



α
Từ đó suy ra đồng dư thức cần tìm
Chú ý rằng trong giao thức chối bỏ, phần sử dụng e
1
, e
2
là để tạo ra x
0
với
y # x
0
a
mod p, còn phần sử dụng f
1

, f
2
là để thực hiện giao thức kiểm thử y có là chữ ký
đối với x hay không.
20
Tiểu luận An toàn thông tin – Các phương pháp ký số
7.4 Độ an toàn của chữ ký Chaum – Van Antwerpen
Độ an toàn của hệ thống phụ thuộc vào bài toán logarit rời rạc do khóa bí mật
sk = a được tính từ công thức h = mod p  a = mod p, trong đó g, h, p là công khai.
Đây chính là vấn đề của bài toán logarit rời rạc khó giải.
8 CHỮ KÝ FAIL-STOP
8.1 Khái niệm
Sơ đồ chữ ký Fail-Stop ngăn chặn việc giả mạo khá hữu hiệu. Nếu H giả mạo chữ
ký của G thì G sẽ chứng minh được ngay chữ ký đó là giả mạo.
Sơ đồ này được xây dựng năm 1992 bởi van Heyst và Pedersen. Đây là chữ ký
1 lần (tức một khoá cho trước chỉ ký 1 lần trên 1 văn bản).
Hệ gồm thuật toán ký, thuật toán kiểm thử và chứng minh tính giả mạo.
8.2 Sơ đồ chữ ký Fail-Stop
Giả sử p là số nguyên tố sao cho bài toán log rời rạc trong Z
p
là khó,
p = 2*q+1, và q cũng là số nguyên tố, α ∈ Z
p
*
là một phần tử cấp q.
1 ≤ a
0
≤ q-1 và
β α
α

=
0
mod
p
.
Các giá trị p, q, α, β là công khai, a
0
là bảo mật.
Đặt P = Z
q
và A = Z
q
× Z
q
Khoá có dạng K = (γ
1
, γ
2
, a
1
, a
2
, b
1
, b
2
)
Với a
1
, a

2
, b
1
, b
2
∈ Z
q

γ
1
= α
a1

a2
mod p
γ
2
= α
b1

b2
mod p
Với x ∈ Z
q
, ta định nghĩa:
Sig
k
(x) = (y
1
, y

2
)
Với y
1
= a
1
+ x*b
1
mod q
21
Tiểu luận An toàn thông tin – Các phương pháp ký số
y
2
= a
2
+x*b
2
mod q.
Để kiểm thử ta tính
Giả sử p là số nguyên tố sao cho bài toán log rời rạc trong Z
p
là khó,
p = 2*q+1, và q cũng là số nguyên tố, α ∈ Z
p
*
là một phần tử cấp q.
1 ≤ a
0
≤ q-1 và
β α

α
=
0
mod
p
.
Các giá trị p, q, α, β là công khai, a
0
là bảo mật.
Đặt P = Z
q
và A = Z
q
× Z
q
Khoá có dạng K = (γ
1
, γ
2
, a
1
, a
2
, b
1
, b
2
)
Với a
1

, a
2
, b
1
, b
2
∈ Z
q

γ
1
= α
a1

a2
mod p
γ
2
= α
b1

b2
mod p
Với x ∈ Z
q
, ta định nghĩa:
Sig
k
(x) = (y
1

, y
2
)
Với y
1
= a
1
+ x*b
1
mod q
y
2
= a
2
+x*b
2
mod q.
Để kiểm thử ta tính
ver
k
(x, y) = true ⇔
)(mod* p
yy
x
21
21
βαγγ
≡∗
Để chữ ký của G thoả mãn điều kiện kiểm thử, ta trở lại vấn đề bảo mật và cách
làm việc của sơ đồ.

Ta định nghĩa 2 khoá (γ
1
, γ
2
, a
1
, a
2
, b
1
, b
2
) và (γ
1
’, γ
2
’, a
1
’, a
2
’, b
1
’, b
2
’) là bằng
nhau khi γ
1
= γ
1
’ và γ

2
= γ
2
’.
Bổ đề:
Giả sử 2 khoá k và k' bằng nhau và ver
k
(x, y) = true khi đó ver
k’
(x, y) = true.
22
Tiểu luận An toàn thông tin – Các phương pháp ký số
Giả sử k = (γ
1
, γ
2
, a
1
, a
2
, b
1
, b
2
) và k’ = (γ
1
’, γ
2
’, a
1

’, a
2
’, b
1
’, b
2
’) với
)(mod*)(mod*
''
pp
aaaa
2121
βαβαγ
==
)(mod*)(mod*
''
pp
bbbb
2121
2
βαβαγ
==
Giả sử văn bản x được ký bằng cách sử dụng khoá k cho ta y = (y
1
, y
2
) với
y
1
= a

1
+ x*b
1
mod q
y
2
= a
2
+x*b
2
mod q.
Sau đó ta kiểm tra y bằng cách sử dụng khoá k’:
)(mod
)(mod)*(**
)(mod**
''''
''''
p
p
p
x
x
bbaa
baba
21
2121
221121
γγ
βαβα
βαβα

γγ
∗≡


++
Do đó y được kiểm thử bằng cách sử dụng khoá k’.
Bổ đề:
Giả sử k là khoá, y = sig
k
(x). Khi đó có đúng q khoá k' = k thoả mãn y = sig
k'
(x).
Chứng minh: giả sử γ
1
, γ
2
trong k là công khai. Ta phải xây dựng bộ 4 (a
1
’, a
2
’,
b
1
’, b
2
’) thoả mãn:
)(mod* p
aa
21
1

βαγ
=
)(mo d* p
bb
21
2
βαγ
=
y
1
= a
1
+ x*b
1
(mod q)
y
2
= a
2
+ x*b
2
(mod q).
Nếu α là phần tử sinh của P, khi đó tồn tại duy nhất cặp c
1
, c
2
, a
0
sao cho:
)(mod p

e
1
1
αγ

)(mod p
e
2
2
αγ

23
Tiểu luận An toàn thông tin – Các phương pháp ký số
)(mod p
a
0
αβ

Đây là điều kiện cần và đủ để thoả mãn hệ phương trình đồng dư
c
1
≡ a
1
+ a
0
*a
2
(mod q)
c
2

≡ b
1
+ a
0
*b
2
(mod q)
y
1
≡ a
1
+ x *b
1
(mod q)
y
2
≡ a
1
+ x *b
2
(mod q)
Ta viết dưới dạng ma trận như sau:















=





























2
1
2
1
2
1
2
1
0
0
010
001
100
001
y
y
c
c
b
b
a
a
x
x
a

a
*
Cấp của ma trận hệ số là 3 (cấp của ma trận là số hàng độc lập tuyến tính mà nó
có hay là cấp của định thức con lớn nhất có giá trị khác 0). Có thể đưa ma trận hệ số về
dạng tam giác rồi tính đồng thời tìm ma trận cấp 3 có định thức ≠ 0.
Hoặc tính: r
1
+x*r
2
-r
3
-a
0
*r
4
= (0, 0, 0, 0).
Với r
i
là hàng thứ i của ma trận. Có ít nhất 1 cách giải là sử dụng khoá k. Khi cấp
của ma trận là 3, số chiều trong không gian lời giải là 4-3 = 1 và có đúng q lời giải.
Tương tự ta có hệ quả 6, chúng tôi bỏ qua chứng minh
Bổ đề : Giả sử k là khoá, y = sig
k
(x) và ver
k
(x’, y’) = true. Với x’ ≠ x. và có
nhiều nhất 1 khoá k sao cho y = sig
k’
(x) và y’ = sig
k’

(x’).
Phải hiểu rằng 2 hệ quả trên đều nói về tính bảo mật của sơ đồ. Cho y là chữ ký
đúng đối với văn bản x, thì có thể có q khoá ký trên x để được y. Nhưng với mọi x’ ≠ x,
các khoá q này tạo ra q chữ ký khác trên văn bản x’.
TÀI LIỆU THAM KHẢO
24
Tiểu luận An toàn thông tin – Các phương pháp ký số
[1] Phan Đình Diệu. Lý thuyết mật mã và an toàn thông tin – NXB Đại học Quốc
gia Hà Nội - 2006
[2] Trịnh Nhật Tiến. Giáo trình An toàn dữ liệu
[3] Trịnh Nhật Tiến. Chữ ký: mù, nhóm, mù nhóm và ứng dụng. Kỷ yếu HN KH
FAIR lần 2 tại TP Hồ Chí Minh 9/2005
[4]
[5]
[6] />
25

×