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

Báo cáo bài tập lớn : an toàn bảo mật hệ thống thông tin đề tài chữ ký số Elgamal và code demo

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 (735.79 KB, 37 trang )

TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN:

AN TOÀN & BẢO MẬT HỆ THỐNG
THƠNG TIN

Đề tài: CHỮ KÝ SỐ ELGAMAL
Nhóm: 21
Sinh viên thực hiện: LHT_10k ego

Hà Nội, 2021


MỤC LỤC
LỜI MỞ ĐẦU......................................................................................................1
Giới thiệu chung về chữ ký số............................................................................2
Giới thiệu sơ đồ chữ ký elgamal.......................................................................3
I. Bài toán Logarithm rời rạc trong Zp..............................................................3
1. tính chất 1......................................................................................................4
2. Các thuật tốn cho bài toán Logarithm rời rạc...........................................5
a. Thuật toán 3(thuật toán shanks)..............................................................6
4. Độ bảo mật từng bit của các logarithm rời rạc..........................................11
II.Sơ đồ chữ ký số Elgamal...............................................................................13
1/. Tấn cơng dạng 1: tìm cách xác định khóa bí mật....................................16
a/. số ngẫu nhiên k bị lộ..............................................................................16
b/. Dùng k cho 2 lần ký khác nhau............................................................16
c/. Khóa bí mật a q nhỏ...........................................................................17
d/. Số ngẫu nhiên k quá nhỏ.......................................................................17


2/. Tấn công dạng 2 : giả mạo chữ ký............................................................17
a/. Giả mạo chữ ký không cùng với tài liệu được ký................................17
b/. Giả mạo chữ ký cùng với tài liệu được ký...........................................18
b2/. Cách 2...................................................................................................19
III. Chuẩn chữ ký số..........................................................................................20
1./Sơ đồ Chuẩn chữ ký số DSS......................................................................20
a/.Tạo cặp khóa (bí mật, cơng khai) (a, h) :..............................................20
b/. Ký số:.......................................................................................................21
c/. Kiểm tra chữ ký:.....................................................................................21
Ứng dụng chữ ký số tại Việt Nam....................................................................23
Code demo..........................................................................................................24
Tài liệu tham khảo.............................................................................................35


Báo cáo bài tập lớn

GVHD: DCT

LỜI MỞ ĐẦU

Ngày nay trong mọi hoạt động của con người, thơng tin đóng một vai trị
quan trọng khơng thể thiếu. Xã hội càng phát triển nhu cầu trao đổi thông tin
giữa các thành phần trong xã hội ngày càng lớn. Mạng máy tính ra đời đã
mang lại cho con người rất nhiều lợi ích trong việc trao đổi và xử lý thông tin
một cách nhanh chóng và chính xác. Chính từ những thuận lợi này đã đặt ra
cho chúng ta một câu hỏi, liệu thơng tin đi từ nơi gửi đến nơi nhận có đảm bảo
tuyệt đối an tồn, ai có thể đảm bảm thông tin của ta không bị truy cập bất
hợp pháp. Thông tin được lưu giữ, truyền dẫn, cùng sử dụng trên mạng lưới
thơng tin cơng cộng có thể bị nghe trộm, chiếm đoạt, xuyên tạc hoặc phá huỷ
dẫn đến sự tổn thất không thể lường được. Đặc biệt là đối với những số liệu

của hệ thống ngân hàng, hệ thống thương mại, cơ quan quản lý của chính phủ
hoặc thuộc lĩnh vực quân sự được lưu giữ và truyền dẫn trên mạng. Nếu như
vì nhân tố an tồn mà thơng tin khơng dám đưa lên mạng thì hiệu suất làm
việc cũng như hiệu suất lợi dụng nguồn dữ liệu đều sẽ bị ảnh hưởng. Trước
các yêu cầu cần thiết đó, việc mã hố thơng tin sẽ đảm bảo an tồn cho thông
tin tại nơi lưu trữ cũng như khi thông tin được truyền trên mạng.
Các phương thức tấn công thông qua mạng ngày càng tinh vi, phức tạp có thể
dẫn đến mất mát thơng tin, thậm chí có thể làm sụp đổ hồn tồn hệ thống
thơng tin của tổ chức. Vì vậy an tồn thơng tin là nhiệm vụ quan trọng, nặng
nề và khó đốn trước đối với các hệ thống thơng tin.
Một trong những ứng dụng của an tồn thông tin là chữ ký số. Với đặc điểm
là đơn giản cho người sử dụng mà vẫn đảm bảo được tính bảo mật, kỹ thuật
sử dụng chữ ký số là một trong những kỹ thuật được sử dụng phổ biến, đa
dạng trong hầu hết các lĩnh vực, nhất là Tài chính, Ngân hàng, Kế tốn…Vì lý
do đó, nhóm chúng em quyết định nghiên cứu về “Chữ ký số Elgamal”.

1


Báo cáo bài tập lớn

GVHD: DCT

Giới thiệu chung về chữ ký số
• Thơng thường chữ ký viết tay trên các văn bản, trên các tài liệu hay
trên các hợp đồng kinh tế ..v.v.. thì được dùng để xác nhận người kí nó.
• Sơ đồ chữ kí ( hay cịn gọi là chữ ký số ) là phương pháp ký một bức
điện lưu dưới dạng điện tử. Chẳng hạn một bức điện có chữ ký được
truyền trên mạng máy tính.
• Một sơ đồ chữ ký số thường chứa hai thành phần: Thuật tốn ký và

thuật tốn xác minh. Người A có thể ký bức điện x dùng thuật tốn ký
an tồn. Chữ ký Sig(x) nhận được có thể kiểm tra bằng thuật tốn xác
minh cơng khai Ver . Khi cho trước cặp (x,y) thuật toán xác minh cho
giá trị TRUE hay FALSE tùy thuộc vào việc chữ ký được xác thực như
thế nào.
Định nghĩa hình thức của chữ ký số:
• Một sơ đồ chữ ký số là bộ 5 ( P, A, K, S, V) thoả mãn các điều kiện
sau :
• 1. P: là tập hữu hạn các bức điện có thể.
• 2. A: là tập hữu hạn các chữ ký có thể .
• 3. K: là tập hữu hạn các khóa, mỗi khóa KK gồm có 2 phần
K=(K’,K’’), K’ là bí mật, K’’ là cơng khai
• 4. Với mọi K=(K’,K’’) tồn tại một thuật toán ký SigKS và một
thuật toán kiểm thử VerK  V .
• Mỗi SigK: P -> A và VerK:P x A ->{TRUE ,FALSE } là những hàm
sao cho mỗi bức điện x P và mỗi bức điện y  A thoả mãn
phương trình sau đây:
TRUE nếu y = Sig(x)
o Ver (x,y)
FALSE nếu y # Sig(x)
o Với mọi K  K , hàm SigK và VerK là các hàm thời
gian đa thức. VerK sẽ là hàm công khai còn SigK là hàm
mật. Ta gọi Alice là người gửi cịn Bob là người nhận.
Khơng thể dễ dàng tính toán để giả mạo chữ ký của
Bob trên bức điện x. Nghĩa là với x cho trước, chỉ có
Bob mới có thể tính được chữ ký y để Ver (x,y) =
TRUE.
2



Báo cáo bài tập lớn

GVHD: DCT

Giới thiệu sơ đồ chữ ký elgamal
 Sơ đồ chữ ký elgamal đã từng được giới thiệu vào năm 1985 ở Mỹ. Bản
cải tiến của sơ đồ này đã được Viện Tiêu Chuẩn và Công Nghệ Quốc
Gia Mỹ(NIST) chấp nhận làm chuẩn chữ ký số. Sơ đồ chữ ký Elgamal
dựa trên tính khó giải bài tốn tìm Logarithm rời rạc trên trường hữu
hạn. Trước hết ta hãy làm quen với bài toán Logarithm rời rạc trên
trường hữu hạn Zp
I. Bài toán Logarithm rời rạc trong Zp
Chúng ta sẽ bắt đầu bằng việc mô tả bài toán này khi thiết lập một trường hữu
hạn Zp , p là số nguyên tố.
Bài toán Logarithm rời rạc trong Zp là đối tượng trong nhiều công trịnh
nghiên cứu, và được xem là bài tốn khó nếu p được chọn cẩn thận. Cụ thể là
khơng có một thuật tốn thời gian đa thức nào cho bài toán Logarithm rời rạc
Đê gây khó khan cho các phương pháp tấn cơng đã biết, p phải có ít bnhaats
150 chữ số thập phân(≈ 500 bít) và (p-1) phải có ít nhất một thừa số nguyên tố
lớn, tốt nhất p có dạng p= 2q + 1 với q là nguyên tố. Số nguyên tố p dạng này
gọi là số nguyên tố mạnh ( String – prime) dối với hệ Elgamal nói riêng và
cho những hệ mã dộ an tồn dựa vào tính khó giải của bài tốn Logarithm rời
rạc nói chung. Lợi thế của bài toán Logarithm rời rạc trong xây dựng sơ đồ
chữ ký là khó tìm được các Logarithm rời rạc, xong bài tốn ngược lấy lũy
thừa lại có thể tính tốn hiệu quả theo luật tốn bình phương và nhân. Nói
cách khác, lũy thừa theo modulo p là hàm một chiều với các số nguyên tố p
thích hợp.

3



Báo cáo bài tập lớn

GVHD: DCT

Mét điều hiển nhiên là định nghĩa về logarit nên trên giống hệt như định nghĩa
đã có trong trường số thực, do vậy các tính chất về logarit trên trường số thực
cũng sẽ có trong trường hữu hạn, ở đây chúng ta chỉ cần quan tâm đến tính
chất sau:
1. tính chất 1
Nếu β ≡ β1.β2….. βk(mod p)
Thì logαβ ≡ logαβ1 + logαβ2 + …..+ logαβk(mod o)

Việc tìm logαβ với β cho trước trong trường hợp Zp đã được biết đến trong kỹ
thuật lý thuyết độ phức tạp tính tốn như một bài tốn khó với thuật toán tốt
nhất như thuật toán sang bậc 2 để giải có độ phức tập cỡ:
, hay thuật tốn sang trường số để giải có độ phức tạp
cỡ :.

Tuy nhiên chúng ta còn thấy một điều hieentr nhiên là với p khơng lớn lắm thì
việc tìm logαβ có thể thực hiện được một cách dễ dàng bằng phương pháp
duyệt toàn bộ qua thuật toán sau:

4


Báo cáo bài tập lớn

GVHD: DCT


Ví dụ:
Cho p =2579, α=2, a=756. Khi đó:
β =2756mod2579=949./
2. Các thuật tốn cho bài tốn Logarithm rời rạc

Trong phần này ta xem rằng p là mét số nguyên tố, α là một phần tử nguyên
tùy theo modulo p. Ta lấy p và α là các ssoos cố định. Khi đó bài tốn
logarithm rời rạc có thể được phát biểu dưới dạng sau: tìm mét
Aduy nhất 0 ≤ a ≤ p – 2 sao cho αa ≡ β (mod p), với β Zp* cho trước.

Rõ ràng là bài tốn logarithm rời rạc(DL) có thể có được giải bằng một phép
tìm kiếm vét cạn với thời gian cỡ O(p) và không gian cỡ O(1) (bỏ qua thừa số
logarithm). Bằng cách tính tốn trước tất cả các giá trị αa có thể và sắp xếp
các cặp thứ tự (a, αa mod p) có lưu ý tới các tọa độ thứ hai của chúng ta, có
thể giải DL với thời gian cớ O(1) bằng O(p) phép tính tốn trước và O(p) bé
nhí. thuật tốn khơng tầm thường đầu tiên mà chúng ta sẽ mơ tả thuật tốn tối
ưu hóa thời gian – bé nhí của Daniel Shanks.

5


Báo cáo bài tập lớn

GVHD: DCT

a. Thuật toán 3(thuật toán shanks)
Ta biểu thị với |
1. Tính αmj mod p, 0 ≤ j ≤ m-1
2. Sắp xếp m cặp thứ tự (j, αmj mod p) có lưu ý với các tọa độ thứ 2
của các cặp này, ta sẽ thu được danh sách L1

3. Tính β α-i mod p , 0 ≤ i ≤ m-1
4. Sắp xếp m cặp thứ tự (I, β α-i mod p) có lưu ý tới các tọa đọ thứ
hai của các cặp được sắp xếp sau này, ta sẽ thu được mét danh
sách L2
5. Tìm một cặp (j,y) L1 và một cặp (i, y) ) L2
6. Xác định logαβ = mj + I mod (p-1).

-Nếu cần, các bước 1, 2 có thể tính tốn trước
- tiếp theo cần lưu ý là nếu (j, y) ) L1 và (i, y) ) L2
αmj = y = β α-i
Bởi vậy αmj + i = β như mong muốn.
Ngược lại, đói với β bát kỳ ta có thể viết:
logαβ = mj +i
trong đó, 0 ≤ j, i ≤ m-1. Vì thế phép tìm kiếm ở bước 5 chắc chắn thành cơng.
Có thể áp dụng thuật tốn này chạy với thời gian O(m) và với bé nhí cỡ O(m).
Chú ý là bước 5 có thể thực hiện một cách (đồng thời) qua tùng danh sách L1
và L2.

6


Báo cáo bài tập lớn

GVHD: DCT

Ví dụ:

Giả sử p-809 và ta pahir tìm log2525. Ta có α =3, β =525 và
m= | | =29.
Khi đó:

α29 mod 809=99

Trước tiên tính cacpwj được sắp (j, 99mod 809) với 0 ≤ j ≤ 28. Ta nhận được
danh sách sau:

7


Báo cáo bài tập lớn

GVHD: DCT

Danh sách sẽ được sặp xếp để tạo ra L1.
Danh sách thứ 2 chứa các cặp được sắp (i, 525 x(3i)-1 mod 809), với
0 ≤ j ≤ 28.

8


Báo cáo bài tập lớn

GVHD: DCT

Danh sách này gồm:

9


Báo cáo bài tập lớn


GVHD: DCT

Sau khi sắp xếp danh sách này, ta có L2
Bây giờ nếu xử lý đồng thời qua cả 2 danh sách, ta sẽ tìm được(10,644) trong
L1 và (19,644) trong L2. Bởi vậy ta có thể tính

Log3525= 29x10+19=309
Có thể kiểm tra thấy rằng quả thực 3309 ≡ 525(mod 809).

4. Độ bảo mật từng bit của các logarithm rời rạc.
10


Báo cáo bài tập lớn

GVHD: DCT

Bây giờ ta xem xét vấn đề thông tin bộ phận của các Logarithm rời rạc và
xem thử việc tính tốn các bít riêng của các logarithm rời rạc là khó hay dễ.
Cụ thể, xét bài toaans “ Bít thứ i của logarithm rời rạc” được trịnh bày ở trên.
Bài toán này được gọi là bài toán về bjt thứ i.

Trước tiên , ta sẽ chỉ ra rằng, bít thấp nhất của các logarithm rời rạc rất dễ tính
tính tốn . nói cách khác, nếu i=1 thì bài tốn về bít thứ I có thể giải các thặng
dư bình phương theo modulo p, với p là số nguyên tố.

Xét ánh xạ f: Zp* Zp* được định nghĩa như sau:

f(x)=x2 mod p
Nếu kí hiệu QR(p) là tập các thặng dư bình phương theo modulo p thì:


QR(p) = {x2 mod p : x Zp*}
Trước tiên ta thấy rằng, f(x) =f(p-x). tiếp theo, xét thấy:

w2 ≡ x2 mod p
khi và chỉ khi: p|(w – x) (w+x) | diều này xảy ra khi và chỉ khi
w ≡ x mod p. Ta rút ra: |f-1(y)| =2 với mọi y QR(p) và bởi vậy:

QR(p)1=(p-1)/2
Điều đó có nghĩa là có đứng một nửa các thặng dư trong Zp* là các thặng dư
bình phương và một nửa là không phải:
11


Báo cáo bài tập lớn

GVHD: DCT

β(p+1)/4 = αw2 mod p
Hoặc
(p-1)/4

β

w2

= α mod p

Trước L2(β): L2(β)=L1(αw2)
Tính các logarithm rời rạc trong Zp với p=3 (mod 4) khi biết trước

thuật toán :
1. x0= L1(β)
2. β = β/αx0 mod p
3. I = 1
4. While β 1 do
5.
xi – L2(β)
6.
y= β(p+1)/4(mod p)
7.
if L1(y) = xi then
8.
β=y
9.
Else
10.Β=p-y
11.Β= β/αx2 mod p
12.i=i+1

Ở cuối thuật toán, giá trị xi là các bít biểu diễn nhị phân của Logαβ, nghĩa là:

Dưới đây là một ví dụ để minh họa:
Ví dụ:
12


Báo cáo bài tập lớn

GVHD: DCT


Giả sử p=19, α =2 và β = 6. Vì trong ví dụ này, các giá trị quá nhỏ nên có thể
lập bảng các giá trị của Li(y) và L2(y) vói mọi giá trị y Z19*. Các giá trị này
được cho trên bảng sau:

Bảng các giá trị của L1 và L2 vói p=19, α =2
y
1
2
3
4
5

L1(y)
0
1
1
0
0

L2(y)
0
0
0
1
0

y
7
8
9

10
11

L1(y)
0
1
0
1
0

L2(y)
1
1
0
0
0

II.Sơ đồ chữ ký số Elgamal
Sơ đồ Elgamal được thiết kế vỡi mục đích dành riêng cho chữ ký số, điểm
mạnh là cùng số nguyên tố p trong cùng một sơ đồ thì với k là ngẫu nhiên nên
ta có thể có nhiều chữ ký số, khơng tất định giống như hệ thống mã khóa cơng
khai Elgamal, ở sơ dồ chữ ký RSA ta chỉ thấy trên cùng một sơ dồ với cùng
mét ố ngun tố p thì ta chỉ có một chữ kí số. Điều này có nghiaxw là có
nhiều chữ ký hợp lệ trên bức điện cho trước bất kỳ. Thuật tốn xác minh phải
óc khả năng chấp nhận bất kỳ chữ ký hợp lệ nào khi xác thực chữ ký đó.

13


Báo cáo bài tập lớn


GVHD: DCT

Nếu chữ ký được tính đúng , kiểm thử sẽ thành cơng vì:
βy * yδ ≡ αay * αk δmod p ≡ α(ay+k δ) mod p ≡ αx mod p
Do δ = (x-ay)k-1 mod(p-1) nên (ay + kδ) ≡ x mod(p-1)

Ví dụ:
Chữ ký Elgamal trên dữ liệu x=112.
-tạo cặp khóa (a,β)
Chọn SNT p = 463. Đặt P=Zp*, A=Zp* x Zp-1
Chọn phần tử nguyên thủy α=2
Chọn khóa bí mật a=211
14


Báo cáo bài tập lớn

GVHD: DCT

Tính khóa cơng khai β= αa mod p= 2211 mod 463 =249
Định nghĩa tập khóa K={(p,α,a,β): β ≡ αa mod p}
Các giá trị (p,α,β) được cơng khai, cịn giá trị a được giữ bí mật.
-Ký số
Chọn ngẫu nhiên bí mật k=235
Khóa ký là (a,k)
Vì k Zp-1, nên nguyên tố cung nhau với p-1, do đó tồn tại
k-1 mod(p-1).
Cụ thể: UVLN(k,p-1)=UCLN(235,462)=1, nên k-1 mod (p-1) =235-1 mod 462
=289.

Chữ ký dữ liệu x=112 là (y,δ)=(16,108), trong đó:

y= αk mod p= 16

δ
-1

= (x-ay)k mod (p-1) = 108
Verk(x,y,δ) =true
βy * yδ ≡ αx mod p
βy * yδ=132
αx mod p =132
hai giá trị đó bằng nhau, như vậy chữ ký đúng.

Độ an tồn
bài tốn căn bản để bảo đảm độ an tồn cho sơ đồ chữ ký Elgamal chính là
bài tốn tính logarithm rời rạc. Biết khóa cũng khai β ≡ αa mod p. Nên có thể
xác định khóa bí mật a bằng cách tính logαβ.

15


Báo cáo bài tập lớn

GVHD: DCT

1/. Tấn công dạng 1: tìm cách xác định khóa bí mật
Khóa bí mật a có thể bị phát hiện, nếu khóa ngẫu nhiên k bị lộ, hoặc dùng k
cho hai lần bất kỳ khác nhau.


a/. số ngẫu nhiên k bị lộ
Nếu k bị lộ, kẻ thám mã sẽ tính được khóa bí mật a=(x-kδ)y-1 mod (p1). Giải pháp phòng tránh: càn thận trọng trong việc sử dụng số ngẫu
nhiên k, không được ddeer lộ số k được dùng.

b/. Dùng k cho 2 lần ký khác nhau
Giả sử dùng k cho 2 lần ký nên x1 và x2. Khi đó, (y,δ1) là chữ ký trên x1 cịn
(y,δ2) là chũ ký tren x2.
Khi đó, kẻ thám mã có thể tính được giá trị a như sau:

Do đó ta có αx1- x2 ≡yδ1 – δ2 (mod p)
Đặt y = αx, ta có αx1- x2 ≡yδ1 – δ2 (mod p)
⇔x1 – x2 ≡k(δ1-δ2)mod(p-1).(1)
Đặt d=(δ1-δ2, p-1). Khi đó d|(p-1), d|((δ1-δ2) ⇒ d|( x1 – x2)

x’=

δ’=
p’= .
16


Báo cáo bài tập lớn

GVHD: DCT

Khi đó đồng dư thức (1) trở thành: x’ ≡ k δ’(mod p’)
Vì (δ’ , p‘) = 1 nên tính = x’* +i*p’mod(p-1), với giá trị nào đó, 0≤ i ≤ d1.Thử với giá trị nào đó, ta tìm được k (điều kiện thử để xác định k là: y= α’
mod p
Tiếp theo sẽ tính được giá trị a như trường hợp 1.
Giải pháp phòng tránh: mỗi lần ký sử dụng một số k khác nhau.


c/. Khóa bí mật a q nhỏ
Nếu khóa bí mật a q nhỏ thì bằng phương pháp dị tìm đơn giản, người ta có
thể tính được nó.
Giải pahps phịng tránh: chọn khóa bí mật a là những số ngun lớn, có kích
thước gần bằng modulo n.

d/. Số ngẫu nhiên k q nhỏ
Tương tự như đối với khóa bí mật a, số ngẫu nhiên k cũng phải bí mật. Trong
trường hợp các tham số này quá nhỏ thì bằng phương pháp dị tìm đơn giản
người ta cũng có thể tìm được chúng. Khi đó, sơ đồ chữ ký sẽ bị mất an tồn.
Nếu k bị lộ, kẻ thám mã sẽ tính được khóa bí mật a.
Giải pháp phịng tránh: chọn số ngẫu nhiên k là những số ngun lớn, có kích
thước gần số modulo n.

2/. Tấn công dạng 2 : giả mạo chữ ký
a/. Giả mạo chữ ký không cùng với tài liệu được ký
+ Tin tặc H cố gắng gải mạo chữ ký trên x mà khơng hề biết khóa bí mật a.
Như vậy, yêu cầu H phải tính được y và δ.
 Nếu chọn trước y, thì H phải tính y qua phương tình:
o βy yδ=αx mod p(E2)
Tức là yδ ≡αxβymod p hay δ≡ logyαxβy mod p
 Nếu chọn trước δ, thì H phải tính y qua phương trịnh:
o βyyδ ≡αx mod p
Hiện nay, chưa có cách hữu hiệu nào để tính cả 2 trường hợp trên, nhung
phỏng đốn là khó hơn bài tốn logarithm rời rạc
17


Báo cáo bài tập lớn


GVHD: DCT

Có thể có cách tính y, δ đồng thời với(y,δ) là chữ ký ? câu trả lời là: chưa
rõ!
 Nếu chọn trước y, δ sau đó tính x, thì tin tặc H phải đói đầu với bài tốn
logarithm rời rạc
o Ta có: βyyδ ≡αx= mod p (E2)
Như vậy: x= logααx ≡ logαβyyδ

b/. Giả mạo chữ ký cùng với tài liệu được ký
+ Tin tặc H có thể ký tên treent ài liệu ngẫu nhiên bằng cách chọn trước đồng
thời x,y,δ.
b1/. Cách 1
 Chọn x, y, δ thỏa mãn diều kiện kiểm thử như sau:
Chọn các số nguyên I, j (0 ≤ i, j ≤ p-2) và (j, p-1) =1 và tính :
y=αi βj mod p

δ = -yj-1 mod (p-1)

x=-yij-1 mod (p-1).

Trong đó, j-1 được tính theo mod (p-1)
 Chứng minh: (y, δ) là chữ ký trên x, bằng cách kiểm tra điều kiện
kiểm thử:
βyyδ ≡ βy(αiβj)-y-j(^-1) mod p ≡βyα-i-y-j(^-1)β +-y=mod p ≡α+x=
mod p
Ví dụ:

18



Báo cáo bài tập lớn

GVHD: DCT

b2/. Cách 2
 Nếu (y, δ )là chữ ký tren tài liệu x có từ trước, thì có thể giả mạo ký
trên tài liệu x’ khác.
+ chọn số nguyên k, i, j thỏa mãn 0 ≤ k, i, j ≤ p-2, (ky –jδ, p-1)=1 và tính:
= ykαi βj mod p

= δλ(ky-jδ)-1mod(p-1)

x’ = (kx + iδ)(ky-jδ)-1 mod(p-1)
 (λ, ) là chữ ký trên x’, vì thỏa mãn điều kiện kiểm thử:
βλλμ ≡ αx mod p.
 Chú ý: Cả 2 cách giả mạo trên đều cho chữ ký dùng trên tài liệu tương
ứng, nhưng đó khơng phải là tài liệu được chọn theo ý của người giả
tạo. Tài liệu đó đều được tính sau khi tính chữ ký, vì vậy giả mạo loại
này trong thực tế cũng khơng có ý nghiã nhiều.

19


Báo cáo bài tập lớn

GVHD: DCT

III. Chuẩn chữ ký số

Chuẩn chữ ký số (DSS: Digital Signature Standard) được đề xuất năm
1991, là cải biên của sơ đồ chữ ký ElGamal, và được chấp nhận là chuẩn vào
năm 1994 để dùng trong một số lĩnh vực giao dịch ở USA.
Thô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
tồn, nhiều ngườ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ủa 64), 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 tố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./Sơ đồ Chuẩn chữ ký số DSS
Sơ đồ :
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 tốn logarit rời rạc trong Zp là “khó” giải.
Chọn q là ước nguyên tố của p-1. Tức là p-1 = t * q hay p = t * q + 1.
(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  = gt , 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amod p.
+ Với mỗi khóa (p, q, , a, h), k’ = a bí mật, k” = (p, q, , h) công khai.
20


Báo cáo bài tập lớn

GVHD: DCT

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 đó
 = (r mod p) mod q,  = ((x + a *  ) * r-1 mod q.
(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 * he2 mod p) mod q = 
Ví dụ:
a/. Tạo cặp khóa (bí mật, cơng khai) (a, h) :
Chọn p = 7649, q = 239 là ước nguyên tố của p-1, t = 32.
Tức là p -1 = t * q hay p = t * q + 1 = 32*q + 1 = 32*239 + 1 = 7649.
Chọn g =3 Z7649 là phần tử sinh.  = gt mod p = 3 32 mod 7649 = 7098.
Chọn khóa mật a = 85, khóa cơng khai h = a mod p = 709885 mod 7649 =
5387.
2/. Ký số: Dùng 2 khóa ký: a và khóa ngẫu nhiên r = 58 Z q*, r-1 mod q =
136.
+ Chữ ký trên x = 1246 là Sig k’(x, r) = (, ) = (115, 87) , trong đó
 = (r mod p) mod q = (709858 mod 7649)mod 239 = 593 mod 239 = 115.
 = (x + a *  ) * r-1 mod q = (1246 + 85 * 115) *136 mod 239 = 87.
3/. Kiểm tra chữ ký: (, ) = (115, 87) là chữ ký đúng trên x = 1246.

e1 = x* -1 mod q = 1246 * 11 mod q = 83, e2 =  * -1 mod q = 115*11
mod q = 70.
Điều kiện kiểm thử đúng ? (e1 * he2 mod p) mod q = ,với -1 = 11.
(709883 *538770 mod 7649) mod 239 = 593 mod 239 = 115 = .

Chú ý
1). Liên quan tới các tính tốn cụ thể trong sơ đồ:
+ Chú ý rằng phải có  0 (mod q) để bảo đảm có -1mod q trong điều kiện
kiểm thử (tương đương UCLN(, p-1) = 1). Vì vậy nếu chọn r mà khơng
được điều kiện trên, thì phải chọn r khác để có  0 (mod q).
21


Báo cáo bài tập lớn

GVHD: DCT

Tuy nhiên khả năng  0 mod q là 2-160 , điều đó hầu như khơng xảy ra.
+ Một chú ý là là thay vì tính p trước rồi mới tính q, ta sẽ tính q trước rồi tìm
p.
2). Liên quan chung tới DSS (1991):
+ Độ 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.
Vì thế NIST sửa đổi là p có độ dài thay đổi, là bội của 64: từ 512 đến 1024
bit.
+ Nếu dùng chữ ký RSA với thành phần kiểm thử chữ ký là nhỏ, thì việc kiểm
thử nhanh hơn việc ký. Đối với DSS, ngược lại, việc ký nhanh hơn kiểm thử.
Điều này dẫn đến vấn đề:
Một tài liệu 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 tốn kiểm thử nhanh hơn.

Máy tính ký và kiểm thử như thế nào ? Nhiều ứng dụng 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 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.

22


Báo cáo bài tập lớn

GVHD: DCT

Ứng dụng chữ ký số tại Việt Nam

Hiện nay, công nghệ chữ ký số tại Việt Nam có thể sử dụng trong các giao
dịch để mua bán hàng trực tuyến, đầu tư chứng khoán trực tuyến. Ngồi ra,
Bộ Tài chính cũng đã áp dụng chữ ký số vào kê khai, nộp thuế trực tuyến qua
mạng internet và các thủ tục hài quan điện tử như khai báo hải quan và thong
quan trực tuyến mà không phải in các tờ khai, đóng dấu của cơng ty và chạy
đến cơ quan thuế xếp hàng và ngồi đợi để nộp tờ khai này. Trong tương lai,
chữ ký số có thể sử dụng với các ứng dụng chính phủ điện tử bởi cơ quan nhà
nước. Sắp tới, sẽ làm việc với người dân hồn tồn thơng qua các dịch vụ
công trực tuyến và một cửa điện tử. Khi cần làm thủ tục hành chính hay một
sự xác nhân gì của cơ quan nhà nước, người dân chỉ cần ngồi ở nhà khai báo
mẫu đơn và ký số để gửi là xong.

23



×