Tải bản đầy đủ (.doc) (32 trang)

Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện tử

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 (297.58 KB, 32 trang )

Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
LỜI NÓI ĐẦU
Trong xu hướng phát triển của thế giới và Việt Nam hiện nay, mạng Internet đang
đem đến sự bùng nổ thông tin một cách mạnh mẽ. Nó được sử dụng để truyền thư điện tử,
truy cập các website, kết nối các công sở, liên lạc với các khách hàng và sử dụng các dịch
vụ ngân hàng, các giao dịch điện tử…
Tiềm năng của mạng Internet là rất lớn. Như ta đã biết các giao tiếp, trao đổi thông tin
qua Internet đều sử dụng giao thức TCP/IP. Các gói tin truyền từ điểm nguồn tới điểm
đích sẽ đi qua rất nhiều máy tính trung gian, vì vậy độ an toàn thấp, nó rất dễ bị xâm
phạm, theo dõi và giả mạo trên đường truyền. Vấn đề không an toàn cho thông tin trên
đường truyền khiến nhiều người đắn đo trong việc sử dụng mạng Internet cho những ứng
dụng về tài chính, giao dịch ngân hàng, hoạt động mua bán và khi truyền các thông tin
kinh tế, chính trị vv…
Những biện pháp đảm bảo an toàn thông tin đưa ra đều nhằm đáp ứng 3 yêu cầu: bảo
mật thông tin, xác thực thông tin và toàn vẹn thông tin trên đường truyền. Các hệ mã
hóa thông tin bảo đảm tính bí mật nội dung thông tin, các sơ đồ chữ ký số bảo đảm xác
thực thông tin trên đường truyền.
Tuy nhiên, nhu cầu của con người không chỉ dừng lại ở việc giao dịch giữa các cá
nhân với nhau, mà còn giao dịch thông qua mạng giữa các nhóm người, các công ty, các
tổ chức khác nhau trên thế giới. Dựa trên những yêu cầu thực tế đó các nhà khoa học đã
nghiên cứu và đề xuất ra một kiểu chữ ký mới, đó chính là chữ ký nhóm.
Trong đồ án này tôi đã tìm hiểu và nghiên cứu về chữ ký nhóm. Đây là một loại chữ
ký điện tử cho phép một nhóm người tạo các chữ ký đại diện cho nhóm, và chỉ những
thành viên trong nhóm mới có thể ký vào các thông điệp của nhóm. Người quản trị của
nhóm có trách nhiệm thành lập nhóm và trong trường hợp cần thiết phải biết được ai là
người ký vào thông điệp.
Trong quá trình làm đồ án tốt nghiệp, em đã nhận được sự hướng dẫn tận tình của
TS.Lê Phê Đô. Em xin chân thành cảm ơn! Đồng thời, em xin cảm ơn các thày cô giáo bộ
môn Tin học – trường Đại học Dân lập Hải Phòng đã trang bị cho em những kiến thức cơ
bản trong quá trình học tập tại trường.


- 1 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
Chương I
CÁC KHÁI NIỆM CƠ BẢN
1.1 Cơ sở toán học
1.1.1. Ước số - Bội số
1.1.2. Số nguyên tố
1.1.3. Khái niệm nhóm
1.1.4. Nhóm hữu hạn
1.1.5. Nhóm con
1.1.6. Nhóm Cyclic
1.1.7. Các thuật toán trong Z
1.1.8. Thuật toán Euclide
1.1.9. Thuật toán Euclide mở rộng
1.1.10. Định nghĩa hàm Φ Euler
1.1.11. Đồng dư thức
1.1.12. Số nghịch đảo
1.1.13. Nhóm nhân Z*n
1.1.14. Định nghĩa thặng dư bậc 2
1.1.15. Phần dư China CRT ( Chinese Remainder Theorem)
1.1.16. Độ phức tạp tính toán
1.1.17. Các thuật toán trong Zn
1.1.18. Thuật toán ( Tính các nghịch đảo trong Zn )
1.1.19. Hàm một phía - Hàm một phía có cửa sập
1.2 Tìm hiểu về mật mã
- 2 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
Sơ đồ khối một hệ truyền tin mật

Định nghĩa : Một hệ mật mã là một bộ năm (P, C, K, E, D) thoả mãn các điều kiện
sau đây:
+ 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à một tập hữu hạn các khoá.
+ Với mỗi k ∈ K, có một hàm lập mã e
k
∈ E
e
k
: P → C
và một hàm giải mã d
k
∈ D
d
k
: C → P sao cho d
k
( )
(x)e
k
= x với mọi x

P
Trong thực tế, P và C thường là bảng chữ cái (hoặc tập các dãy chữ cái có độ dài
cố định).
1.2.1. Mã cổ điển
Hệ mã cổ điển (hệ mã đối xứng) là hệ mật mã mà khóa mã hóa có thể dễ dàng tìm
được từ khóa giải mã và ngược lại. Trong nhiều trường hợp, khóa mã hóa và khóa giải mã
là giống nhau.

Hệ mật mã cổ điển yêu cầu người gửi và người nhận phải thỏa thuận một mã trước khi
tin tức được gửi đi, khóa này phải được cất giữ bí mật. Độ an toàn của hệ này phụ thuộc
vào khóa. Nếu để lộ khóa, thì bất kỳ người nào cũng có thể mã hóa và giải mã thông điệp
đó.
 Nơi ứng dụng
Hệ mã cổ điển thường được sử dụng trong môi trường mà khóa có thể dễ dàng trao
chuyển bí mật. Nó cũng được dùng để mã hóa thông tin khi lưu trữ trên đĩa.
- 3 - Lớp CT702
Nguồn tin Bộ mã hóa Kênh mở
(không an toàn)
Bộ giải mã Nhận tin
Thám mã
Kênh an toàn
Nguồn khóa
Bản rõ Bản mã Bản mã
K
D
K
E
BA
Bản rõ
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
1.2.1.1. Mã dịch chuyển
Định nghĩa : Mã dịch chuyển: (P, C, K, E, D)
P = C = K = Z
26
với k ∈ K, định nghĩa e
k
(x) = (x + k) mod 26

d
k
(y) = (y – k) mod 26
(x, y ∈ Z
26
)
1.2.1.2. Mã thay thế
Định nghĩa Mã thay thế: (P, C, K, E, D)
P = C = Z
26
, K = S (Z
26
) Với mỗi π є K, tức là một hoán vị trên Z
26
, ta xác định
e
π
(x) = π (x)
d
π
(y) = π
-1
(y)
với x, y є Z
26
, π
-1
là nghịch đảo của π
1.2.1.3. Mã Affine
Định nghĩa Mã Affine: (P, C, K, E, D)

P = C = Z
26
, K = { (a, b) є Z
26
x Z
26
: (a, 26) = 1 }
với mỗi k = (a, b) є K ta định nghĩa:
e
k
(x) = ax + b mod 26
d
k
(y) = a
-1
(y – b) mod 26
trong đó x, y є Z
26
1.2.1.4. Mã Vingenere
Định nghĩa Mã Vingenere: (P, C, K, E, D)
Cho m là số nguyên dương.
P = C = K = (Z
26
)
m
với mỗi khoá k = (k
1
, k
2
,…,k

m
) ∈ K có:
e
k
(x
1
, x
2
,…, x
m
) = (x
1
+ k
1
, x
2
+ k
2
,…, x
m
+ k
m
)
d
k
(y
1
, y
2
,…, y

m
) = (y
1
– k
1
, y
2
– k
2
,…, y
m
– k
m
)
các phép cộng phép trừ đều lấy theo modulo 26
1.2.1.5. Mã Hill
Định nghĩa Mã Hill: (P, C, K, E, D)
Cho m là số nguyên dương.
P = C = (Z
26
)
m
K = { k ∈ (Z
26
)
mxm
mxm :
( )
26 det(k),
= 1 }

với mỗi k ∈ K định nghĩa:
e
k
(x
1
, x
2
,…, x
m
) = (x
1
, x
2
,…, x
m
).k
d
k
(y
1
, y
2
,…, y
m
) = (y
1
, y
2
,…,y
m

).k
-1
- 4 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
1.2.1.6. Mã hoán vị
Định nghĩa Mã hoán vị: (P, C, K, E, D)
Cho m là số nguyên dương.
P = C = Z
26
, K = S
m
( )
mk
xxxe ,,,
21
=
( ) ( ) ( )
( )
m
xxx
πππ
,,,
21
( )
mk
yyyd ,,,
21
=
( ) ( ) ( )

( )
m
yyy
111
,,,
21
−−−
πππ
với mỗi k = π ∈ S
m
, ta có
Trong đó π
-1
là hoán vị nghịch đảo của π
1.2.2. Mã khóa công khai
Trong mô hình mật mã cổ điển trước đây mà hiện nay đang được nghiên cứu, A(người
gửi) và B (người nhận) chọn khóa bí mật K. Sau đó dùng K để tạo luật mã hóa e
k
và luật
giải mã d
k
. Trong hệ mật này d
k
hoặc giống e
k
hoặc khác, nếu để lộ e
k
thì làm cho hệ thống
mất an toàn.
Nhược điểm của hệ mật này là nó yêu cầu phải có thông tin trước về khóa K giữa A và

B qua một kênh an toàn trước khi gửi một bản mã bất kỳ.
Ưu điểm của hệ mật khóa công khai là ở chỗ A (hoặc bất kỳ A) có thể gửi một bản tin
đã mã hóa cho B (mà không cần thông tin trước về khóa mật) bằng cách dùng mật mã
công khai e
k
. Người nhận A sẽ là người duy nhất có thể giải mã được bản mã này bằng
việc sử dụng luật giải bí mật d
k
của mình. Có thể hình dung hệ mật này tương tự như sau:
A đặt một vật vào một hộp kim loại và rồi khóa nó lại bằng một khóa số do B để lại. Chỉ
có B là người duy nhất có thể mở được hộp vì chỉ có anh ta mới biết tổ hợp mã của khóa
số của mình.
 Nơi ứng dụng
Sử dụng chủ yếu trên các mạng công khai như Internet, khi mà việc trao chuyển khóa
bí mật tương đối khó khăn. Đặc trưng nổi bật của hệ mã hóa khóa công khai là cả khóa
công khai và bản mã đều có thể gửi đi trên một kênh thông tin không an toàn.
1.2.2.1. Mã RSA
Hệ mật này sử dụng tính toán trong Z
n
, trong đó n là tích của 2 số nguyên tố phân biệt
p và q. Ta thấy rằng φ(n) = (p – 1).(q – 1).
- 5 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
Định nghĩa
Cho n = p.q trong đó p và q là các số nguyên tố. Đặt P = C = Z
n
và định nghĩa:
K = {(n, p, q, a, b): n = p.q, p, q là các số nguyên tố, a.b ≡ 1 mod φ(n)}
Với K = (n, p, q, a, b) ta xác định: e

K
(x) = x
b
mod n
và d
K
(y) = y
a
mod n
(x, y ∈ Z
n
) Các giá trị n và b được công khai và các giá trị p, q, a được giữ kín
1.2.2.2. Mã Elgamal
Hệ mật mã ElGamal được T.ElGamal đề xuất năm 1985, dựa vào độ phức tạp của bài
toán tính lôgarit rời rạc, và sau đó đã nhanh chóng được sử dụng rộng rãi không những
trong vấn đề bảo mật truyền tin mà còn trong các vấn đề xác nhận và chữ ký điện tử.
Bài toán logarithm rời rạc trong Z
p
là đối tượng trong nhiều công trình nghiên cứu và
được xem là bài toán khó nếu p được chọn cẩn thận. Cụ thể là không có một thuật toán
thời gian đa thức nào cho bài toán logarithm rời rạc. Để gây khó khăn cho các phương
pháp tấn công đã biết, p phải có ít nhất 150 chữ số và (p – 1) phải có ít nhất một thừa số
nguyên tố lớn. Hệ mật Elgamal là một hệ mật không tất định vì bản mã phụ thuộc vào cả
bản rõ x lẫn giá trị ngẫu nhiên k do G chọn. Bởi vậy sẽ có nhiều bản mã được mã từ cùng
một bản rõ.
Bài toán logarithm rời rạc trong Z
p
:
Đặc trưng của bài toán: I = (p, α, β) trong đó p là số nguyên tố, α ∈
p

Z

phần tử nguyên thuỷ (hay phần tử sinh), β ∈
*
p
Z
Mục tiêu: Hãy tìm một số nguyên duy nhất a, 0 ≤ a ≤ p – 2 sao cho:
α
a
≡ β (mod p)
Ta sẽ xác định số nguyên a bằng log

α

β.
Định nghĩa mã hoá công khai Elgamal trong
*
p
Z
:
Cho p là số nguyên tố sao cho bài toán logarithm rời rạc trong
p
Z
là khó giải.
Cho α ∈
*
p
Z
là phần tử nguyên thuỷ. Giả sử P =
*

p
Z
, C =
*
p
Z
x
*
p
Z
. Ta định
nghĩa: K = {(p, α, a, β): β ≡ α
a
(mod p)}
Các giá trị p, α, β được công khai, còn a giữ kín.
Với K =(p, α, a, β) và một số ngẫu nhiên bí mật k ∈
1−p
Z
, ta xác định:
e
K
(x, k) = (y
1
, y
2
).
Trong đó: y
1
= α
k

mod p
y
2
= x. β
k
mod p
với y
1
, y
2

*
p
Z
ta xác định:
d
K
(y
1
, y
2
) = y
2
(y
1
a
)
– 1
mod p
- 6 - Lớp CT702

Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
Chương II
CHỮ KÍ ĐIỆN TỬ
2.1. Tìm hiểu về chữ ký điện tử ( electronic signature )
2.1.1. Khái quát về chữ ký điện tử ?
Về căn bản, khái niệm chữ ký điện tử (electronic signature) cũng giống như chữ viết
tay. Bạn dùng nó để xác nhận lời hứa hay cam kết của mình và sau đó không thể rút lại
được. Chữ ký điện tử không đòi hỏi phải sử dụng giấy mực.
Hiện nay, chữ ký điện tử có thể bao hàm các cam kết gửi bằng email, nhập các số định
dạng cá nhân (PIN) vào các máy ATM, ký bằng bút điện tử với thiết bị màn hình cảm ứng
tại các quầy tính tiền, chấp nhận các điều khoản người dùng (EULA) khi cài đặt phần
mềm máy tính, ký các hợp đồng điện tử online.
Chữ ký điện tử được tạo ra bằng cách áp dụng thuật toán Băm một chiều trên văn bản,
sau đó mã hóa bằng private key tạo ra chữ ký số đính kèm với văn bản gốc để gửi đi. Khi
nhận, văn bản được tách làm 2 phần.
So sánh chữ ký thông thường và chữ ký diện tử
Chữ ký thông thường Chữ ký điện tử
Vấn đề ký một tài liệu
Chữ ký chỉ là một phần vật lý của tài
liệu
Vấn đề ký một tài liệu
Chữ ký điện tử không gắn kiểu vật lý
vào bức thông điệp nên thuật toán được
dùng phải “không nhìn thấy” theo một
cách nào đó trên bức thông điệp
Vấn đề về kiểm tra
Chữ ký được kiểm tra bằng cách so
sánh nó với chữ ký xác thực khác. Tuy
nhiên, đây không phải là một phương

pháp an toàn vì nó dễ bị giả mạo.
Vấn đề về kiểm tra
Chữ ký điện tử có thể kiểm tra nhờ
dùng một thuật toán “kiểm tra công
khai”. Như vậy, bất kì ai cũng có thể
kiểm tra được chữ ký điện tử. Việc dùng
chữ ký điện tử an toàn có thể chặn được
giả mạo.
Bản copy thông điệp được ký bằng
chữ ký thông thường lại có thể khác với
bản gốc.
Bản copy thông điệp được ký bằng chữ
ký điện tử thì đồng nhất với bản gốc,
điều này có nghĩa là cần phải ngăn chặn
một bức thông điệp ký số không bị dùng
lại.
- 7 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
2.1.2. Định nghĩa về sơ đồ ký điện tử
Một sơ đồ chữ ký S là một bộ năm
S = (P , A , K , S , V)
Trong đó: P là một tập hữu hạn các thông báo có thể có,
A là một tập hữu hạn các chữ ký có thể có,
K là một tập hữu hạn các khoá, mỗi khoá K ∈ K gồm có hai
phần K=(K’,K''), K' là khoá bí mật dành cho việc ký, còn K'' là khoá
công khai dành cho việc kiểm thử chữ ký.
Với mỗi K =(K’,K''), trong S có một thuật toán ký sig
k’
: P → A , và trong V có một

thuật toán kiểm thử ver
k”
: PxA → {đúng,sai} thoả mãn điều kiện sau đây đối với mọi
thông báo x ∈ P và mọi chữ ký y ∈ A :
ver
k”
(x, y) = đúng ↔ y = sig
k’
(x )
Với sơ đồ trên, mỗi chủ thể sở hữu một bộ khoá K =(K’,K''), công bố công khai khoá
K'' để mọi người có thể kiểm thử chữ ký của mình, và giữ bí mật khoá K’ để thực hiện
chữ ký trên các thông báo mà mình muốn gửi đi. Các hàm ver
k”
và sig
k’
(khi biết K’) phải
tính được một cách dễ dàng (trong thời gian đa thức), tuy nhiên hàm y = sig
k’
(x ) là khó
tính được nếu không biết K’ - điều đó bảo đảm bí mật cho việc ký, cũng tức là bảo đảm
chống giả mạo chữ ký.
Các chữ ký số phải thỏa mãn điều kiện cơ bản sau :
 Không thể giả mạo
 Xác thực
2.1.3. Sơ đồ chữ ký RSA
Sơ đồ chữ ký RSA được cho bởi bộ năm
S = (P , A , K , S , V)
Trong đó : P = A =Z
n
, với n =p.q là tích của hai số nguyên tố lớn p,q

K là tập các cặp khoá K =(K’,K''), với K’ = a và K'' = (n,b)
a và b là hai số thuộc Z
*

n
thoả mãn a.b ≡ 1(mod
φ
(n)).
Các hàm sig
k’
và ver
k”
được xác định như sau:
sig
k’
(x) = x
a
modn ,
ver
k”
(x,y ) = đúng ↔ x ≡ y
b
(modn).
Dễ chứng minh được rằng sơ đồ được định nghĩa như vậy là hợp thức, tức là với mọi
x ∈ P và mọi chữ ký y ∈ A:
ver
k”
(x,y ) = đúng ↔ y = sig
k’
(x)

Chú ý rằng tuy hai vấn đề xác nhận và bảo mật theo sơ đồ RSA là có bề ngoài giống
nhau, nhưng nội dung của chúng là hoàn toàn khác nhau: Khi A gửi thông báo x cho B,
- 8 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
để B có căn cứ xác nhận đó đúng thực là thông báo do A gửi, A phải gửi kèm theo chữ
ký sig
k’
(x), tức là A gửi cho B (x, sig
k’
(x)), trong các thông tin gửi đi đó, thông báo x
hoàn toàn không được giữ bí mật. Cũng tương tự như vậy, nếu dùng sơ đồ mật mã RSA,
khi một chủ thể A nhận được một bản mật mã e
k’
(x) từ B thì A chỉ biết rằng thông báo x
được bảo mật, chứ không có gì để xác nhận x là của B.
Nếu ta muốn hệ truyền tin của ta vừa có tính bảo mật vừa có tính xác nhận, thì ta phải
sử dụng đồng thời hai hệ mật mã và xác nhận (bằng chữ ký). Giả sử trên mạng truyền tin
công cộng, ta có cả hai hệ mật mã khoá công khai S
1
và hệ xác nhận bằng chữ ký S
2
. Giả
sử B có bộ khoá mật mã K = (K', K'') với K' = (n, e) và
K'' = d trong hệ S
1
, và A có bộ khoá chữ ký K
s
= (K’
s

, K''
s
) với
K’
s
= a và K''
s
= (n,b) trong hệ S
2
. A có thể gửi đến B một thông báo vừa bảo mật vừa có
chữ ký để xác nhận như sau: A ký trên thông báo x trước, rồi thay cho việc gửi đến B văn
bản cùng chữ ký (x,sig
k’s
(x)) thì A sẽ gửi cho B bản mật mã của văn bản đó được lập theo
khoá công khai của B, tức là gửi cho B e
k’
((x, sig
k’s
(x)). Nhận được văn bản mật mã đó B
sẽ dùng thuật toán giải mã d
k’’
của mình để thu được (x, sig
k’s
(x)), sau đó dùng thuật toán
kiểm thử chữ ký công khai ver
k”s
của A để xác nhận chữ ký sig
k’s
(x) đúng là của A trên x.
2.1.4. Sơ đồ chữ ký Elgamal

Sơ đồ chữ ký ElGamal được đề xuất năm 1985, gần như đồng thời với sơ đồ hệ mật
mã ElGamal, cũng dựa trên độ khó của bài toán lôgarit rời rạc. Sơ đồ được thiết kế đặc
biệt cho mục đích ký trên các văn bản điện tử, được mô tả như một hệ:
S = (P , A , K , S , V)
Trong đó P = Z
*
p
, A = Z
*
p
x Z
p-1
, với p là một số nguyên tố sao cho bài toán tính
lôgarit rời rạc trong Z
*
p
là rất khó. Tập hợp K gồm các cặp khoá K=(K’,K''), với K’=a là
một số thuộc Z
*
p
, K'' =(p, α , β), α là một phần tử nguyên thuỷ của Z
*
p
, và β=α
a
modp. K’
là khoá bí mật dùng để ký, và K'' là khoá công khai dùng để kiểm thử chữ ký. Các thuật
toán ký và kiểm thử chữ ký được xác định như sau: Với mỗi thông báo x, để tạo chữ ký
trên x ta chọn thêm môt số ngẫu nhiên k ∈ Z
*

p-1
, rồi tính :
sig
k’
(x,k ) = (γ , δ) với
γ = α
k
modp,
δ = (x – a.γ). k
-1
mod(p -1).
Thuật toán kiểm thử được định nghĩa bởi:
ver
k”
(x,(γ , δ)) = đúng ↔ β
γ
. γ
δ
≡ α
x
(modp).
Dễ thấy rằng sơ đồ chữ ký được định nghĩa như trên là hợp thức. Thực vậy, nếu
sig
k’
(x,k ) = (γ , δ) thì ta có :
β
γ
. γ
δ
≡ α


. α

mod p
- 9 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
≡ α
x
mod p,
vì k.δ +a.γ ≡ x mod(p -1). Do đó, ver
k”
(x,(γ , δ)) = đúng.
2.1.5. Sơ đồ chữ ký DSS
Sơ đồ chữ ký DSS được cho bởi bộ năm
S = (P , A , K , S , V)
Trong đó P = Z
*
p
, A = Z
*
q
x Z
*
q
p là một số nguyên tố lớn có độ dài biểu diễn 512 ≤ l
p
≤ 1024 bit (với l là
bội của 64) sao cho bài toán tính logarit rời rạc trong Z
p

là khó.
q là một ước số nguyên tố của p -1 có l
q
biểu diễn cỡ 160 bit.
Gọi α ∈ Z
*
p
,α = h
(p-1)/q
mod p ≠ 1 với 1<h<p-1
a là số ngẫu nhiên (0 < a < q )
β ≡ α
a
modp.
k là số ngẫu nhiên (0 < k < q )
K=(K’,K''), trong đó khoá bí mật K’ = a, và khoá công khai K'' = (p,q, α, β).
 Hàm ký sig
k’
:
sig
k’
(x,k ) = (γ , δ)
Trong đó γ = (α
k
modp) modq,
δ = (x + a. γ).k
-1
modq.
 Hàm kiểm thử ver
k”

:
ver
k”
(x,(γ , δ)) = đúng
↔ (
21
.
ee
βα
modp)modq = γ ,
Trong đó e
1
= x . w
và e
2
= γ. w
với w = δ
-1
mod q
Chú ý rằng ta phải có δ ≠ 0 mod q để có thể tính được δ
-1
mod q dùng trong thuật toán
kiểm thử, vì vậy nếu chọn k mà được δ ≡ 0 mod q thì phải chọn lại số k khác để có được
δ ≠ 0 mod q.
Cũng dễ thấy rằng sơ đồ như trên là đúng. Thực vậy nếu x, γ,δ là đúng thì :
(
21
.
ee
βα

modp)modq = (α
x.w
. β
γ.w
mod p) mod q
= (α
x.w
. α
a. γ.w
mod p) mod q
= (α
(x+a.γ).w
mod p) mod q (1)
Hơn nữa w = δ
-1
mod q
= (x + a.γ)
-1
.k mod q
→ (x + a. γ).w = k mod q (2)
Từ (1) và (″) → (
21
.
ee
βα
mod p)mod q = (α
k
mod p) mod q = γ
- 10 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện

tử
Như vậy ver
k”
(x,(γ ,δ)) = đúng
2.2. Chữ ký không thể chối bỏ
Chữ ký không chối bỏ được công bố bởi Chaum và Van Antverpen vào năm 1989. Nó
có một nét riêng mới lạ và thú vị. Quan trọng nhất trong số đó là chữ ký không thể kiểm tra
khi không có sự cộng tác của người ký, A(giả sử người ký là A).
Một sơ đồ chữ ký không thể chối bỏ có 3 phần:
 Một thuật toán ký
 Một giao thức kiểm thử ( giao thức xác nhận )
 Một giao thức chối bỏ
2.3. Chứng minh không tiết lộ thông tin
 Từ bây giờ chúng ta sẽ coi Peggy là Prover (người chứng minh), còn Victor là
Verifier (người kiểm thử) như nhiều tài liệu Mật mã. Peggy(P) muốn chứng minh
với Victor(V) rằng cô ta biết câu thần chú có thể mở được cánh cửa bí mật tại các
điểm R-S, nhưng cô ta không muốn tiết lộ bí mật đó với Victor.
 Quá trình đến nơi đó diễn ra như sau: Victor đi tới P và đợi đến khi Peggy đi khỏi
R hoặc S. Sau đó Victor di chuyển đến Q và gọi Peggy ra ngoài từ bên trái hoặc
bên phải của đường hầm( kỹ thuật cut and choose). Nếu Peggy không biết câu thần
chú, cô ta chỉ có 50% khả năng ra ngoài từ bên đúng.
Giao thức có thể được lặp lại nhiều lần đến khi Victor tin rằng Peggy đã biết câu
thần chú. Nếu giao thức được lặp lại k lần, xác suất lừa gạt của Peggy là 2
k
. Và nó
không có nghĩa là giao thức đã được lặp bao nhiêu lần. Victor vẫn không biết được
bí mật.
2.3. Vấn đề ký số trên đại diện văn bản
Khái niệm : Việc sử dụng các hệ mật mã và các sơ đồ chữ ký số thường là mã hóa và
ký số trên từng bit của thông tin, thời gian để mã hóa và ký sẽ tỷ lệ thuận với dung lượng

của thông tin. Thêm vào đó có thể xảy ra trường hợp với nhiều bức thông điệp đầu vào
khác nhau, sử dụng hệ mật mã, sơ đồ ký số giống nhau (có thể khác nhau) thì cho ra kết
quả bản mã, bản ký số giống nhau.
2.3.1. Sơ lược về hàm băm (Hash Function)
2.3.1.1. Giới thiệu
Theo các sơ đồ chữ ký ở trên thì chữ ký của thông điệp cũng có độ dài bằng độ dài của
thông điệp, đó là một điều bất tiện. Ta mong muốn như trong trường hợp chữ ký viết tay,
chữ ký có độ dài ngắn và hạn chế cho dù văn bản có độ dài bằng bao nhiêu. Vì chữ ký số
- 11 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
được ký cho từng bit của thông điệp, nếu muốn chữ ký có độ dài hạn chế trên thông điệp
có độ dài tuỳ ý thì ta phải tìm cách rút gọn độ dài thông điệp. Nhưng bản thân thông điệp
không thể rút ngắn được, nên chỉ còn cách là tìm cho mỗi thông điệp một thông điệp thu
gọn có độ dài hạn chế và thay việc ký trên thông điệp, ta ký trên thông điệp thu gọn.Do
vậy các hàm băm đóng vai trò cơ bản trong mã khóa công khai. Hàm băm sẽ tạo ra một
đầu ra từ bản tin đầu vào. Đầu ra này được định nghĩa là một mã băm.
2.3.1.2. Định nghĩa hàm Hash
Hàm Hash là một hàm tính toán có hiệu quả khi ánh xạ các dòng nhị phân có độ dài
tuỳ ý thành các dòng nhị phân có độ dài cố định nào đó.
Hàm Hash yếu: Hàm Hash được gọi là yếu nếu cho một thông điệp x thì về mặt tính
toán không tìm ra được thông điệp x’ khác x sao cho :
h(x’) = h(x)
Hàm Hash mạnh: Hàm Hash được gọi là mạnh nếu về mặt tính toán không tìm ra được
hai thông điệp x và x’ sao cho:
x’ ≠ x và h(x’) = h(x)
Chọn giá trị x ngẫu nhiên, x ∈ X
Tính z = h(x)
Tính x
1

= A(z)
Nếu x
1
≠ x thì x
1
và x va chạm dưới h( thành công)
Ngược lại là thất bại
Hàm Hash có tính chất một chiều: Hàm Hash có tính chất một chiều nếu cho trước
thông điệp rút gọn z thì về mặt tính toán không tìm ra được thông điệp x sao cho :
h(x) = z.
Hàm Hash yếu làm cho chữ ký số trở nên tin cậy giống như việc ký trên toàn thông
điệp.
Hàm Hash mạnh có tác dụng chống lại kẻ giả mạo tạo ra hai bản thông điệp có nội
dung khác nhau, sau đó thu nhận chữ ký hợp pháp cho một bản thông điệp dễ được xác
nhận rồi lấy nó giả mạo làm chữ ký của thông điệp thứ 2.
2.3.1.3. Tính chất của hàm băm
 Hàm băm h phải thỏa mãn tính chất không va chạm yếu .
 Hàm băm h không va chạm mạnh nghĩa là không có khả năng tính toán dễ tìm ra
hai thông điệp x và x

mà x

≠ x và h(x

) = h(x).
 Hàm băm h là hàm một chiều nghĩa là khi cho trước một bản tóm lược thông điệp
z thì không thể thực hiện về mặt tính toán để tìm ra thông điệp ban đầu x sao cho
h(x)= z.
- 12 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện

tử
2.3.1.4. Thuật toán MD5
Thuật toán MD5 được Ron Rivest đưa ra vào năm 1991. Đầu vào của thuật toán là các
khối có độ dài 512 bit và đầu ra là một bản băm đại diện cho văn bản gốc có độ dài
128bit.
Các bước tiến hành :
Bước 1 : Độn thêm bit
Bước 2 : Thêm độ dài
Bước 3 : Khởi tạo bộ đệm của MD
Bước 4 : Tiến trình thực hiện
Bước 5 : Đầu ra
2.4. Xác thực
Trong phạm vi truyền thông qua internet người ta nhận được các dạng tấn công sau
đây.
 Khám phá
 Phân tích luồng thông tin
 Giả mạo
 Sửa đổi nội dung
 Sửa đổi trình tự
 Sửa đổi thời gian
 Chối bỏ
- 13 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
Chương III
CHỮ KÝ NHÓM
3.1. Khái niệm về chữ ký nhóm( Groups Signature )
Chữ ký nhóm là chữ ký điện tử đại diện cho một nhóm người, một tổ chức
Các thành viên của một nhóm người được phép ký trên thông điệp với tư cách là
người đại diện cho nhóm.

Chữ ký nhóm được David Chaum và Van Heyst giới thiệu lần đầu tiên vào năm 1991.
Kể từ đó đến nay đã có nhiều nhà khoa học nghiên cứu và đưa ra một số sơ đồ chữ ký
nhóm khác như sơ đồ chữ ký nhóm của Chen và Pedersen năm 1994, sơ đồ chữ ký nhóm
của Camenisch và Stadler năm 1997.
3.2. Những đặc điểm của chữ ký nhóm
 Chỉ có thành viên trong nhóm mới có thể ký tên vào bản thông báo đó
 Người nhận thông điệp có thể kiểm tra xem chữ ký đó có đúng là của nhóm đó hay
không, nhưng người nhận không thể biết được người nào trong nhóm đã ký vào
thông điệp đó.
 Trong trường hợp cần thiết chữ ký có thể được “mở” (có hoặc là không có sự giúp
đỡ của thành viên trong nhóm) để xác định người nào đã ký vào thông điệp đó
3.2.1. Ta có hệ chữ ký nhóm
Undeniable Signature
MultiSignature ( Đồng ký )
Proxy Signature (chữ ký ủy nhiệm)
3.2.2. Một sơ đồ chữ ký nhóm gồm thành phần cơ bản
 Người quản lý nhóm
 Các thành viên trong nhóm
 Người không thuộc nhóm
3.2.3. Một sơ đồ chữ ký nhóm thường bao gồm 5 thủ tục
 KeyGen → (pk,gmsk). Trong đó pk là khóa công khai của nhóm (dùng để xác
minh chữ ký của nhóm), gmsk là khóa bí mật của nhóm.
 Join : Cho phép một người không phải là thành viên nhóm gia nhập nhóm. Khi gia
nhập nhóm, thành viên i sẽ nhận được khóa bí mật của mình là sk
i
, người quản lý
nhóm sẽ lưu thông tin của thành viên mới này
 Sig : Khi thành viên i muốn ký thông điệp m đại diện cho nhóm, anh ta sẽ sử dụng
thủ tục Sig: Sig(m, sk
i

)→. Chữ ký trên thông điệp m là δ.
- 14 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
 Verify : Khi muốn kiểm tra chữ ký δ có phải là chữ ký đại diện cho nhóm trên
thông điệp m sử dụng thủ tục Verify(m, δ,pk) =



False
True
 Open : Với mỗi chữ ký trên thông điệp m, người quản lý nhóm có thể xác định
được thành viên nào đã ký vào thông điệp bằng việc sử dụng thủ tục
Open(gmsk,m, δ), đầu ra của thủ tục là thông tin về thành viên đã ký.
3.2.4. Hiệu quả của chữ ký nhóm
Khi đánh giá hiệu quả của một sơ đồ chữ ký nhóm ta cần quan tâm đến các thông số
sau:
 Độ lớn của khóa công khai nhóm γ (số bit)
 Độ lớn của chữ ký trên một thông điệp (số bit)
 Hiệu quả của các thủ tục Setup, Join, Sign, Verify, Open
3.2.5. Việc đảm bảo an ninh đối với chữ ký nhóm.
 Không thể giả mạo
 Người ký nặc danh có thể tính toán được
 Không thể chối bỏ
 Không thể phân tích quan hệ
 Ngăn chặn framing Attacks
 Ngăn chặn sự liên minh
3.3. Các sơ đồ chữ ký nhóm của David Chaum và Van Heyst
3.3.1. Sơ đồ chữ ký nhóm thứ nhất.
Z ( là người quản lý nhóm hoặc là người tin cậy được ủy nhiệm ) chọn một hệ thống

khóa công khai và đưa cho mỗi thành viên một danh sách các khóa bí mật (các danh sách
này là khác nhau) và công bố một danh sách đầy đủ các khóa công khai tương ứng ( theo
thứ tự ngẫu nhiên ) trong một Trusted Public Directory – TPD
Mỗi thành viên có thể ký một thông điệp bằng một khóa bí mật trong danh sách của
anh ta, và người nhận có thể kiểm tra chữ ký bằng một khóa công khai tương ứng từ danh
sách khóa công khai. Mỗi khóa chỉ được sử dụng một lần, nói cách khác các chữ ký đã
được tạo bằng khóa này được liên kết. Z biết tất cả các danh sách khóa bí mật, vì thế
trong trường hợp cần thiết, Z có thể biết được ai đã tạo ra chữ ký đó. Để làm được điều
này Z phải “mở” chữ ký.
Nếu mỗi người có cùng một số lượng các khóa bí mật, thì chiều dài của khóa công
khai của nhóm là tuyến tính với số thành viên, nhưng số thông điệp của mỗi thành viên ký
là không đổi.
- 15 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
Một vấn đề đối với sơ đồ này là Z biết tất cả các khóa bí mật của các thành viên và có
thể giả mạo chữ ký. Điều này có thể được giải quyết bằng việc sử dụng các khóa công
khai mù. Lấy g là phần tử sinh của nhóm nhân Z
*
p
với p là một số nguyên tố. Thành viên
thứ I lấy khóa bí mật của mình là s
i
và tính g
i
s
mod p rồi gửi cho Z, Z có một danh sách
các khóa công khai khác nhau này cùng với tên của các thành viên. Mỗi tuần Z đưa cho
thành viên I một số ngẫu nhiên r
i


{ }
1 ,,2,1 −p
và công bố danh sách tất cả các khóa
công khai mù là
( )
i
i
r
s
g
. Trong suốt tuần này thành viên I sẽ sử dụng s
i
r
i
mod (p-1) làm
khóa bí mật.
Ưu điểm của việc cải biên này là Z không thể giả mạo chữ ký, và mỗi thành viên sẽ
có một “ khóa bí mật thực sự ”. Nếu r
i
chẳng may bị lộ thì vẫn không có một thông tin nào
về khóa bí mật s
i
bị lộ.
Trong một cải biên khác, không cần phải có người ủy quyền tin cậy, mỗi người dùng
gửi một (hoặc nhiều hơn ) các khóa công khai tới một danh sách công khai sẽ là khóa
công khai của nhóm. Nhưng chỉ những thành viên của nhóm mới có thể gửi các khóa
công khai vào danh sách này.
3.3.2. Sơ đồ chữ ký nhóm thứ hai
Z chọn hai số nguyên tố lớn p, q khác nhau và một hàm một chiều và tính N=p*q.

Z đưa cho thành viên thứ I một khóa bí mật s
i
,là một số nguyên tố lớn ngẫu nhiên thuộc
tập hợp
[ ] [ ]
{ }
12,, −= NN 
φ
, và tính v =

i
s
, và công bố N, v và f. Nếu thành viên I
muốn ký thông điệp m, chữ ký của anh ta sẽ là
( )( )
i
s
mf
mod N.
Z phải chứng minh cho người nhận rằng s
i
là ước của v, và s
i

φ
mà không để lộ bất
kì thông tin nào về s
i
. Trong trường hợp có xảy ra tranh cãi sau đó, người nhận có thể sử
dụng giao thức xác nhận hoặc giao thức chống chối bỏ yêu cầu bên gửi phải chứng minh

rằng chữ ký không phải của bên gửi.
3.3.2.1. Giao thức xác nhận
Người ký P sẽ phải chứng minh rằng S là chữ ký của anh ta trên thông điệp m với V
mà không để lộ thông tin nào về khóa bí mật s của anh ta, việc này sẽ được giải quyết bởi
giao thức 1, chúng ta sẽ phải tính toán các blob an toàn B .
Ta coi bản thu gọn của thông điệp là m.
- 16 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
Giao thức xác nhận 1
Nếu giao thức này được lặp lại k lần, V sẽ tin rằng s ∈ Ω; nhưng V sẽ không nhận
được gì hơn ngoài sự thật là s ∈ Ω;
Giao thức 1
1. P chọn r ∈ (0, …, β). Tính các blob trên z
1
≡ x
r
(mod N) và z
2
≡ x
β
−r

(mod N), và
gửi không theo thứ tự
{ }
)B(z),B(z
21
cho V .
2. V chọn ngẫu nhiên b ∈ (0, 1) và gửi cho P

3. P gửi lại cho V trong trường hợp
b = 0:r và mở các blob
b = 1:
z
~
là (c + r) hoặc (c + r - β) và tương ứng z
1
hoặc z
2
(gọi là
z
~
)
4. V kiểm tra trong trường hợp :
b = 0 : kiểm tra r ∈ ( 0, …, β) và các blob của x
r
và x
r-
β
theo thứ tự nào đó
b = 1 : kiểm tra
r
~
∈ Ω và một trong các blob chứa
z
~

z
~
thỏa mãn

r
m
~

z
~
S (mod N).
Nếu P có thể trả lời đúng cả hai yêu cầu khi V gửi b thì chữ ký S trên thông điệp m
đúng là của P . Còn nếu một trong hai câu có kết quả sai hoặc cả hai câu đều sai thì chữ
ký S trên thông điệp m không phải là chữ ký của P.
Blob B có thể được tính bằng cách sau:
Z chọn các phần tử sinh g
p
và h
q
của
*
p
Z

*
q
Z
và tính
g ≡



ql
pg

p
mod
mod
và h ≡



qh
pl
q
mod
mod
sử dụng CRT
Để tính B(y) thì P chọn r
1
, r
2
∈ (1, …, N) và tính
B(y) = y
21
rr
hg
mod N
Trong giao thức này, chúng ta tạo một giao thức xác nhận, vì P muốn chứng minh
cho người nhận V rằng P đưa cho một V chữ ký có giá trị S. Trường hợp này được giải
quyết như sau :
- 17 - Lớp CT702
Khóa bí mật của P : s
Công khai : N, m, S, Ω; m, s ∈ Z
*

N
, Ω =
[ ] [ ]
{ }
12,, −NN 


N
Chứng minh với V : m
s
≡ S (mod N) và s ∈ Ω
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
Giao thức xác nhận 2

Giao thức 2
1. Chứng minh tồn tại s sao cho m
s
≡ S (mod N) và s ∈ Ω bằng giao thức 1, thực
hiện k lần.
2. Chứng minh rằng s|v như sau:
Giao thức 2
3.3.2.2. Giao thức chối bỏ
Nếu P muốn chứng minh cho V rằng S không phải là chứ ký của anh ta trên thông
điệp m, trường hợp này sẽ được giải quyết như sau:
Giao thức chói bỏ
Z công bố (
hg,
) được sinh trong nhóm Z
*

N
(cách tính
hg,
như sau: chọn các số
nguyên a
1
,

a
2
, b
1
, b
2
thỏa mãn gcd(a
1
, b
1
, p-1) = gcd (a
2
, b
2
, q-1) = 1 và công khai
- 18 - Lớp CT702
Khóa bí mật của P : s
Công khai : N, m, S, Ω; m, s ∈ Z
*
N
, Ω =
[ ] [ ]

{ }
12,, −NN 


N
Chứng minh với V : m
s
≡ S (mod N) và s ∈ Ω và s|v (s là ước của v)
Khóa bí mật của P : s
Công khai : N, m, S, Ω; m, s ∈ Z
*
N
Chứng minh với V : m
s
≡ S (mod N) và s ∈ Ω và s|v (s là ước của v)
P V

a ≡ S
r
Chọn r ∈ (1,…, N)
b ≡ a
v/s
B(b)
Kiểm tra a r
Mở blob Kiểm tra blob và b ≡ m
vr
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
2121
~

,
~
bbaa
hghhgg ≡≡
với g, h là các phần tử sinh của Z
p
*
và Z
*
q
), cùng đó là một thư mục
công khai tin cậy chứa ( tên thành viên,
ss
hg
~
,
~
). Lấy l là một hằng số rất nhỏ để việc tìm
kiếm toàn diện trên (0, …, 1) là khả thi. Chú ý rằng nếu S ≡ m
s
, thì p không thể tính a từ
( )
a
s
Sm /
, vì khi đó
( )
a
s
Sm /

= 1. Khi đó anh ta sẽ phải đoán a.
Giao thức 3
Do chữ ký được tạo ra là chữ ký không thể chối bỏ, ta có thể sử dụng giao thức chối
bỏ của sơ đồ chữ ký không thể chối bỏ do chính tác giả David Chaum sáng tác để thưc
hiện việc chứng minh chữ ký S không phải là chữ ký của P trên thông điệp m với V .
Z công bố
g
~

i
s
g
~
(mod N), S
-1
i
(mod ϕ(N)) tương ứng từng thành viên. Giao thức 4
sẽ giải quyết vấn đề chối bỏ chữ ký như sau :
Giao thức 4
Bước 1 : V chọn ngẫu nhiên 2 số nguyên x
1,
x
2
∈ Ф, tính
( )
2
1
~
x
s

x
gSc =
mod N, sau đó gửi
cho P
Bước 2 : P tính
( )
1−
=
s
cd
mod N, gửi d cho V
Bước 3 : V thử điều kiện
d

21
~
xx
gm
mod N. Nếu đúng thì tiếp tục bước 4. Nếu sai thì
chữ ký đúng là của P
- 19 - Lớp CT702
P V


2
~
~
r
a
hgm

≡ S
r
Chọn r
1
, r
2
∈ (1,…, N) và a ∈ (0, …, 1)

( )
( )
2
1
~
~
r
s
r
sa
hgS

Tính a từ
( )
a
s
Sm /
B(b)
Bằng cách kiểm tra
Toàn bộ các số
r
1

, r
2
Mở blob Kiểm tra blob
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
Bước 4 : V chọn ngẫu nhiên 2 số nguyên tố x

1
, x

2
∈ Ф tính
( )
2
'
1
'
~
'
x
sx
gSc =
mod N, sau
đó gửi c

cho P .
Bước 5 : P tính
( )
1
''


=
s
cd
mod N, sau đó gửi d

cho V
Bước 6 : V thử điều kiện d


2
'
1
'
~
xx
gm
mod N. Nếu đúng thì tiếp tục bước 7. Nếu sai thì
chữ ký đúng là của P .
Bước 7 : V kiểm tra
( )
( )
1
'
2
'
1
2
~~
'

x
x
x
x
gdgd
−−

mod N ? Nếu đồng dư thức đùng thì kết luận chữ
ký không phải là của P.
Ví dụ :
Một ví dụ về sơ đồ chữ ký nhóm dừa trên hệ mật mã RSA
 Thành lập một nhóm có 5 thành viên, quá trình cài đặt nhóm do người quản
lý nhóm thực hiện như sau :
Z chọn p = 101, q = 113, N = pq = 11413, ϕ(N) = (p-1)(q-1) = 11200, Z
chọn khóa bí mật của Z là S
z
= 149, g
p
= 3, h
q
= 2 là các phần tử sinh của Z
*
p
và Z
*
q
. Chọn a
1
= 3, a
2

= 7, b
1
= 11, b
2
= 13.
Tính
21
~
aa
hgg =
mod N = 3456 và
21
~
bb
hgh =
mod N = 2448
Các khóa bí mật của các thành viên như sau :
s
1
= 107,s
2
= 113, s
3
= 123, s
4
= 129, s
5
= 137
Khóa công khai của các thành viên ( là nghịch đảo của khóa bí mật
của các thành viên trong trường mod ϕ(N)) được gửi lên TPD như sau

(không theo thư tự ): 5443, 2577, 3187, 8769, 10873. Các khóa công khai
này sẽ được người nhận thông điệp dùng để xác minh có đúng hay không.
Khóa công khai của nhóm là N = 11413
v =

iz
ss
=3916191121461
 Ký văn bản : ký văn bản m = 1234 thì
Chữ ký của từng thành viên lần lượt là : 278, 6093, 6541, 6528, 8331
 Xác nhận chữ ký ( sử dụng giao thức 1)
Thành viên 1 muốn xác nhận chữ ký S = 278 đúng là của anh ta ( gọi là P )
trên văn bản m = 1234 với người xác nhận ( gọi là V ) thì anh ta thực hiện
giao thức xác nhận ( giao thức 1)
Bước 1 : P chọn β = 57, chọn r = 23.
Tính z
1
= 1234
23
mod 11413 = 4016, z
2
= 1234
23-57
= mod 11413 =
(1234
-1
)
34
mod 11413 = 9517
34

mod 11413 = 2429.
Tính các blob : g = 1922, h = 4748, chọn r
1
= 5,r
2
= 7.

- 20 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
B(z
1
) = 4016.1922
5
.4748
7
mod 11413 = 8712
B(z
2
) = 2429.1922
5
.4748
7
mod 11413 = 1518
Bước 2 : V chọn b = 0 hoặc b = 1 rồi gửi cho P
Bước 3 : P gửi cho V
Nếu b = 0 thì
r
= 23, β = 57, mở các blob g = 1922, h = 4748,
r

1
= 5,r
2
= 7, z
1
= 4016, z
2
= 2429
Nếu b = 1 thì
r
= 107 + 23 = 130,
z
= 4016
Bước 4 : V xác định
Nếu b = 0 thì r ∈ (0, …, β) và kiểm tra z
1
= 4016, z
2
= 3418 sau đó
kiểm tra B(4016) = 8712 và B(3418) = 5505 theo thứ tự nào đó mà P
đã gửi ở bước 1. Nếu kiểm tra thỏa mãn thì chữ ký là đúng .
Nếu b = 1 thì kiểm tra 1234
130
≡ 4016.278 (mod 11413)

9387 ≡
9387. do đó chữ ký là đúng.
 Chối bỏ chữ ký ( sử dụng giao thức 4). Giả sử thành viên thứ 1 ký thông
điệp m = 1234, chữ ký S = 278, thành viên thứ 3 muốn chứng minh rằng đó
không phải là chữ ký của anh ta. Khi đó người quản lý nhóm công bố : N =

11413,
g
~
= 1299,
s
g
~
= 4528 (mod N) (công khai), s
-1
= 3187 (mod ϕ(N))
( cho thành viên cần phải chứng minh biết P).
Bước 1 : V chọn x
1
= 3, x
2
= 5. Tính c = 278
3
.4528
5
(mod N) = 6595. Gửi c
cho P
Bước 2 : P tính d = 6595
3187
(mod N) = 5172. Rồi gửi cho V
Bước 3 : V thử 5172 ≡ 1234
3
1299
5
(mod 11413)?


5172 ≡ 4285
Bước 4 : V tính c’ = 278
4
.4528
6
(mod N) = 1236 rồi gửi c’ cho P
Bước 5 : P tính d’ = 1236
3187
(mod N) = 6038 rồi gửi cho V
Bước 6 : V thử 6038 ≡ 1234
4
1299
6
(mod 11413)?

6038 ≡ 694
Bước 7 : V kiểm tra
( )
( )
( )
( )





=
=



2682mod1299.5172
2682mod1299.6038
4
5
3
6
N
N
do đó chữ ký không
phải là của P
3.3.3. Sơ đồ chữ ký nhóm thứ ba
Chúng ta giả sử rằng có một thư mục công khai tin cậy trong đó các modulo RSA của
mỗi thành viên được liệt kê ( số mũ RSA công khai không cần trong sơ đồ này)
Khóa bí mật của thành viên thứ I sẽ là thừa số của modulo RSA của anht a N
i
= p
i
q
i
.
trong suốt quá trình cài đặt, Z chọn một số modulo RSA N độc lập với tất cả các N
i
của
các thành viên. Lấy M là một số nguyên công khai sao cho p
i
∈Ф=
[ ] [ ]
{ }
12 ,, −MM


- 21 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
q
i
> 4
M
(đối với mọi i). nếu thành viên i muốn ký thông điệp m, anh ta chọn ngẫu nhiên
một bộ
Γ
người ( bao gồm cả anh ta ), chữ ký của anh ta sẽ là :
( )( )
i
p
mf,Γ
mod N
Và anh ta sẽ phải đưa ra một chứng cớ không tiết lộ thông tin rằng sử dụng thừa số p
i
∈ Ф và p
i
là một ước số của modulo RSA của các người trong
Γ
. Điều này có thể được
giải quyết bằng Giao thức 2 ( với Ω = Ф). Nếu một thành viên muốn chối bỏ một chữ ký,
anh ta có thể sử dụng Giao thức 3.
3.3.3.1. Vấn đề “ mở ” chữ ký
Trong trường hợp cần thiết, người quản lý nhóm có thể xác định một chữ ký là do
thành viên nào trong nhóm ký bằng cách thực hiện giao thức chối bỏ với từng thành viên
trong nhóm.
Bởi vì chữ ký, mà mỗi thành viên ký là một chữ ký không thể chối bỏ, do đó nếu sử

dụng giao thức chối bỏ ( Giao thức 3) thì một thành viên sẽ không thể phủ nhận chữ ký
mà mình đã ký. Và khi đó người quản lý nhóm sẽ biết được chữ ký đó là của ai.
3.4. Sơ đồ chữ ký nhóm của Jan Camenish và Stadler
David Chaum và Van Heyst đã đưa ra các sơ đồ chữ ký nhóm đầu tiên trên thế giới,
nhưng trong các sơ đồ của họ thì số thành viên trong nhóm phải là cố định, nhưng thực tế
một số nhóm luôn luôn thay đổi thành viên, để khắc phục được nhược điểm này, năm
1997 Jan Camenish và Stadler đã đưa ra một sơ đồ chữ ký số nhóm mới mà theo đó số
thành viên trong nhóm sẽ có thể thay đổi được.
Sơ đồ chữ ký số nhóm do Jan Camenish và Stadler gồm 5 thủ tục:
 Setup: Sinh khóa công khai của nhóm và khóa bí mật của người quản lý nhóm
 Join: Thủ tục tương tác giữa người quản lý nhóm và một thành viên mới của nhóm
để cung cấp cho thành viên này khóa bí mật và chứng nhận thành viên.
 Sign: Thủ tục ký một thông điệp của một thành viên trong nhóm.
 Verify: Thủ tục kiểm tra chữ ký trên một thông điệp xem có đúng là chữ ký của
nhóm đó hay không.
 Open: Là thủ tục để xác định xem chữ ký S trên thông điệp m là của thành viên
nào trong nhóm.
3.4.1. Một số khái niệm cần thiết
Khái niệm 1
Một chữ ký dựa trên kiến thức về logarit rời rạc kép của y theo g, và a trên thông điệp
m với một tham số an toàn l kí hiệu là :
- 22 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
( )
[ ]
( )
mgySKLOGLOG
a
l

α
α
=
Là một nhóm
( )
l
sssc ,,,,
21

{ }
l
m
l
Zx1,0
thỏa mãn :
( )
ll
PPPagymHc ,,,,,,,
21
=
Trong đó
( )
[ ]
( )
[ ]






≠↔
=↔
=
0
0
icy
icg
P
i
s
i
s
a
a
i
Khái niệm 2
Một chữ ký dựa trên kiến thức về logarit rời rạc thành phần gốc thứ e của y theo g trên
thông điệp m được ký hiệu:
( )
[ ]
( )
mgySKROOTLOG
e
l
α
α
=
Là một nhóm
( )
l

sssc ,,,,
21

{ }
l
m
l
Zx1,0
thỏa mãn :
( )
ll
PPPagymHc ,,,,,,,
21
=
Trong đó
( )
[ ]
( )
[ ]





≠↔
=↔
=
0
0
icy

icg
P
e
i
e
i
s
s
i
3.4.2. Sơ đồ chữ ký
 Setup : Người quản trị nhóm chọn tham số an toàn l rồi làm các bước sau :
 Một cặp khóa công khai RSA(n, e) và một khóa bí mật d.
Trong đó n có độ dài tối thiểu là 21bit, n = pq, p = P + 1, q = 2Q + 1
p, q, P, Q là các số nguyên tố

Một nhóm Cyclic G = <g>

Một phần tử
*
n
Z∈
α
ngẫu nhiên.

Một số mũ
λ
và một hằng số
µ
>1,
µ

càng lớn thì hệ thống càng an toàn

Join : A muốn tham gia vào nhóm thì phải thực hiện các bước sau:

Lấy một khóa bí mật
{ }
12 ,,1,0 −∈
λ
x

Tính y = a
x
(mod n)

Tính khóa thành viên z = g
y
, A sẽ sử dụng khóa bí mật của mình để ký z.

Để có được chứng nhận thành viên của nhóm, A gửi (y, z) cho người quản
lý nhóm, anh ta sẽ cấp cho A chứng nhận thành viên : v≡(y+1)
d
(mod n)

Sign : Để ký một thông điệp m, A làm theo các bước sau :

r
gg =
~
với r ∈ Z
n


( )
ry
zgz ==
~
~
- 23 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử

[ ]
( )
mgzSKLOGLOGV
l
~
~
1
==
α

[ ]
( )
mggzSKROOTLOGV
l
β
β
~~
~
2
==

Chữ ký trên thông điệp m gồm s =
( )
21
,,
~
,
~
VVzg

Verify : Để xác thực chữ ký s đúng là chữ ký trên m ta phải làm các bước sau :

Kiểm tra V
1
thỏa mãn
1
~~
~
+
=
α
a
ggz
hay không

Kiểm tra V
2
là chữ ký dựa trên hàm logarit rời rạc của phần tử gốc thứ e.

Open : Với chữ ký s =
( )

21
,,
~
,
~
VVzg
trên thông điệp m, người quản lý nhóm có thể
xác định người ký bằng cách kiểm tra xem
p
y
gz
~
~
=
với mọi thành viên P của
nhóm với y
p
= log
g
z
p
và z
p
là khóa bí mật của thành viên P.
- 24 - Lớp CT702
Báo cáo tóm tắt Tìm hiểu về Chữ ký nhóm và ứng dụng trong giao dịch điện
tử
Chương IV
ỨNG DỤNG CHỮ KÝ NHÓM
4.1. Tìm hiểu về giao dịch điện tử

Giao dịch điện tử là giao dịch được thực hiện thông qua các phương tiện điện tử và
cũng có giá trị pháp lý như nó được ghi chép, hoặc mô tả bằng văn bản theo phương pháp
truyền thống. Có thể coi văn bản pháp lý đầu tiên ở Việt Nam về giao dịch điện tử là
quyết định của Thủ tướng Chính phủ số 44, năm 2002 về chấp nhận chữ ký điện tử trong
thanh toán liên ngân hàng. Ngày 28/10/2005, kỳ họp thứ 8 Quốc hội Khóa XI đã thảo
luận về Dự thảo Luật Giao dịch điện tử. Tham gia phiên thảo luận, Bộ trưởng Bộ Bưu
chính Viễn thông Đỗ Trung Tá đã phát biểu ý kiến về nội dung quan trọng trong Dự thảo
Luật Giao dịch điện tử “Chính phủ quy định cụ thể về việc thừa nhận chữ ký điện tử và
chứng thư điện tử nước ngoài”. 4.2. Thẻ thanh toán điện tử
Chữ ký nhóm có rất nhiều ứng dụng trong thực tế như: Bỏ phiếu điện tử, thanh toán
điện tử.
Hiện nay các loại thẻ thanh toán điện tử, thẻ rút tiền tự động ATM (automated teller
machine) đã trở thành phổ biến trên thế giới và cũng đang rất phát triển tại Việt Nam. Tuy
nhiên nếu mỗi ngân hàng đều phát hành một loại thẻ riêng thì chi phí bỏ ra sẽ rất cao, và
người tiêu dùng khi muốn thanh toán hoặc rút tiền sẽ phải tìm đến đúng điểm (pos) cho
phép của ngân hàng đó mới có thể thực hiện giao dịch. Điều này sẽ gây cản trở trong việc
phát triển các hệ thống thanh toán trực tuyến, rút tiền tự động…
Chính vì thế mà việc đòi hỏi có một loại thẻ chung giữa các ngân hàng, và các máy
kiểm tra thẻ, máy rút tiền tự động có thể thực hiện giao dịch đối với thẻ của các ngân
hàng. Chữ ký nhóm sẽ được ứng dụng trong trường hợp này.
Một liên minh ngân hàng (hay một nhóm các ngân hàng) trong đó mỗi ngân hàng là
một thành viên trong nhóm đó với người quản lý nhóm là một ngân hàng trung tâm ( phải
là ngân hàng có rất uy tín và thường là ngân hàng trung ương ).
Ngân hàng trung tâm sẽ tạo ra các khóa bí mật và khóa công khai của nhóm, tạo các
khóa bí mật cho các ngân hàng thành viên. Khi đó các ngân hàng sẽ tạo trên thẻ thanh
toán do ngân hàng mình phát hành dựa trên khóa bí mật của mình. Khi một người tiêu
dùng có thẻ của liên minh ngân hàng đó, anh ta có thể thanh toán, rút tiền,…tại các địa
điểm hỗ trợ của liên minh ngân hàng. Các máy kiểm tra thẻ sẽ kiểm tra chữ ký của ngân
hàng phát hành trên thẻ đó, xem thẻ có hợp lệ hay không, và sẽ đưa ra quyết định thực
hiện giao dịch.

- 25 - Lớp CT702

×