LƯỢC ĐỒ CHỮ KÝ LD - Khoa công nghệ thông tin

Download Report

Transcript LƯỢC ĐỒ CHỮ KÝ LD - Khoa công nghệ thông tin

CÁC LƯỢC ĐỒ CHỮ KÝ SỐ
(DIGITAL SIGNATURE SCHEMES)

Khái niệm

Lược đồ RSA/DSA

Hàm băm SHA-1

Một số lược đồ chữ ký khác
http://fit.mta.edu.vn/~dunglh/info.aspx
1
LƯỢC ĐỒ CHỮ KÝ SỐ

Định nghĩa:
Một lược đồ là một bộ 5 (P,C,K,E,D) thỏa mãn
các điều kiện sau:






M là tập các thông điệp dữ liệu
S là tập các chữ ký
K là tập các khóa
A là tập các thuật toán ký
V là tập các thuật toán xác minh
Đối với mỗi: k  K tồn tại một thuật toán ký: sigk  A
verk V sig
và một thuật toán xác minh tương ứng:
, k :M S
và verk : M  S  {true, false } là những hàm sao cho với mỗi: m  M
và: s  S thỏa mãn:
true, s  sigk (m) .
verk (m, s)  
 false, s  sigk (m)
http://fit.mta.edu.vn/~dunglh/info.aspx
2
LƯỢC ĐỒ CHỮ KÝ SỐ

Nguyên tắc:
 Sử dụng khóa bí mật để
hình thành chữ ký.
 Sử dụng khóa công khai
để xác minh chữ ký.
http://fit.mta.edu.vn/~dunglh/info.aspx
3
LƯỢC ĐỒ CHỮ KÝ RSA


RSA = Rivest, Shamir, Adelman,
MIT, 1977.
Hình thành tham số và khóa





p, q: số nguyên tố lớn.
n = p x q , ɸ(n) = (p-1) x (q-1).
Chọn khóa công khai e thỏa mãn:
1 < e < ɸ(n) và gcd(e, ɸ(n)) = 1.
Tính khóa bí mật: d = e-1 mod ɸ(n).
Bí mật: d; Công khai: e,n; Hủy: p,q,ɸ(n).
http://fit.mta.edu.vn/~dunglh/info.aspx
4
LƯỢC ĐỒ CHỮ KÝ RSA
 Thuật


toán ký
m = H(M)
d
S = m mod n
http://fit.mta.edu.vn/~dunglh/info.aspx
5
LƯỢC ĐỒ CHỮ KÝ RSA
 Thuật



toán xác minh
m = H(M)
e
m’ = S mod n
m’ = m  S hợp lệ
http://fit.mta.edu.vn/~dunglh/info.aspx
6
LƯỢC ĐỒ CHỮ KÝ RSA
 Tính
đúng đắn
e
m’ = (S) mod n
d
e
= {(m) mod n} mod n
= (m)
e.d
= {(m)
k
mod n = (m)
ɸ(n)
k
k.ɸ(n)+1
mod n
1
)} . (m) mod n
1
= {1} . (m) mod n = m
http://fit.mta.edu.vn/~dunglh/info.aspx
7
LƯỢC ĐỒ CHỮ KÝ DSA


DSA = Digita Signature Algorithm,
NIST, FIPS 186 1994.
Hình thành tham số và khóa
 p, q: số nguyên tố lớn,
với: q|(p-1).
(p-1)/q
 1 < h < p, g = h
mod p.
 Khóa bí mật : 1 < x < q.
x
 Khóa công khai : y = g mod p.
 Bí mật: x; Công khai: p, q, g, y.
 Hàm băm SHA-1: {0,1}* —› Zq.
http://fit.mta.edu.vn/~dunglh/info.aspx
8
LƯỢC ĐỒ CHỮ KÝ DSA

Thuật toán ký
 1 < k < q & không lặp lại.
k
 R = (g mod p) mod q
-1
 S = k .(H(M) + x.R) mod q
 Chữ ký (R,S)
http://fit.mta.edu.vn/~dunglh/info.aspx
9
LƯỢC ĐỒ CHỮ KÝ DSA

Thuật toán xác minh
-1
 W = S mod q
 U = W. H(M) mod q
 V = W. R mod q
U
V
 R’ = (g . y mod p) mod q
 R’ = R  (R,S) hợp lệ.
http://fit.mta.edu.vn/~dunglh/info.aspx
10
LƯỢC ĐỒ CHỮ KÝ DSA

Tính đúng đắn
U
V
R’ = (g . (y) mod p) mod q
= (g
W.H(M)
= (g
S .H
-1
.g
.g
x.W.R
-1
x. S .R
mod p) mod q
mod p) mod q
k
= (g mod p) modq = R
http://fit.mta.edu.vn/~dunglh/info.aspx
11
HÀM BĂM

Định nghĩa: Hàm băm là hàm một
chiều có các tính chất:


Từ M dễ tính được: m = H(M).
Ngược lại, cho trước m rất khó tìm
được M thỏa mãn: m = H(M). (1)
Kích thước của m (Lm) không đổi và
không phụ thuộc kích thước của M
(LM). (2)
http://fit.mta.edu.vn/~dunglh/info.aspx
12
HÀM BĂM

Định nghĩa: (tiếp)


Cho trước M rất khó tìm được
M’ sao cho: H(M’) = H(M). (3)
Rất khó tìm được M và M’ bất
kỳ thỏa mãn: H(M) = H(M’). (4)
http://fit.mta.edu.vn/~dunglh/info.aspx
13
HÀM BĂM

Chú ý:


Hàm băm có các tính chất (1), (2)
& (3) được gọi là hàm băm có tính
kháng va chạm yếu.
Hàm băm có các tính chất (1), (2)
& (4) được gọi là hàm băm có tính
kháng va chạm mạnh.
http://fit.mta.edu.vn/~dunglh/info.aspx
14
HÀM BĂM SHA-1


SHA = Secure Hash Algorithm,
NSA, FIPS 180-1 1993.
Tham số kỹ thuật
64

LM ≤ 2

Lm = 160 bit.
http://fit.mta.edu.vn/~dunglh/info.aspx
bit.
15
HÀM BĂM SHA-1

Mở rộng bản tin
Biểu diễn nhị phân của M 100 ... 00
l -bit
Biểu diễn nhị phân của LM
k -bit
64 -bit
l + k mod 512 = 448
l + k + 64 = n x 512
M = {M1,M2,...,Mi,...Mn}
http://fit.mta.edu.vn/~dunglh/info.aspx
16
HÀM BĂM SHA-1


Các bộ đệm

A, B, C, D, E: 32 bit.

H0, H1, H2, H3, H4: 32 bit.

W0,W2,...,Wt,...,W79: 32 bit.
Khởi tạo bộ đệm

H0 = 67452301, H1 = EFCDAB89

H2 = 98BADCFE, H3 = 10325476

H4 = C3D2E1F0.
http://fit.mta.edu.vn/~dunglh/info.aspx
17
HÀM BĂM SHA-1

Xử lý dữ liệu:




Mi , 1 ≤ i ≤ n
Mi = {M[0],M[1],..., M[j],...,M[15]},
0 ≤ j ≤ 15, LM[j] = 32 bit.
For t = 0 to 15 do
Wt = M[t];
For t = 16 to 79 do
Wt = S1(Wt-3 XOR Wt-8 XOR Wt-14
XOR Wt-16)
A = H0, B = H1, C = H2, D = H3, E = H4.
http://fit.mta.edu.vn/~dunglh/info.aspx
18
HÀM BĂM SHA-1

Xử lý dữ liệu: (tiếp)

For t = 0 to 79 do
5
Temp = S (A) + Ft(B,C,D) + E + Wt + Kt.
30
E = D, D = C, C = S (B), B = A, A = Temp

H0 = H0 +A, H1 = H1 +B, H2 = H2 +C,
H3 = H3 +D, H4 = H4 +E.
http://fit.mta.edu.vn/~dunglh/info.aspx
19
HÀM BĂM SHA-1

Các hàm:

Ft(B,C,D) = (B AND C) OR ((~B)
AND D), 0 ≤ t ≤ 19

Ft(B,C,D) = (B XOR C XOR
D),
20 ≤ t ≤ 39

Ft(B,C,D) = (B AND C) OR (B AND D)
OR (C AND D) , 40 ≤ t ≤ 59
http://fit.mta.edu.vn/~dunglh/info.aspx
20
HÀM BĂM SHA-1

Các hàm: (tiếp)

Ft(B,C,D) = (B XOR C XOR D),
60 ≤ t ≤ 79

n
S (x) = (x) << n
http://fit.mta.edu.vn/~dunglh/info.aspx
21
HÀM BĂM SHA-1

Các hằng số:

Kt = 5A827999, 0 ≤ t ≤ 19

Kt = 6ED9EBA1, 20 ≤ t ≤ 39

Kt = 8F1BBCDC, 40 ≤ t ≤ 59

Kt = CA62C1D6, 60 ≤ t ≤ 79
http://fit.mta.edu.vn/~dunglh/info.aspx
22
HÀM BĂM SHA-1

Kết quả Xử lý dữ liệu:

M = {Mi | i= 1,2,…,n}

SHA-1(Mi) = {H0,H1,H2,H3,H4}

SHA-1(M) = SHA-1(Mn)
http://fit.mta.edu.vn/~dunglh/info.aspx
23
LƯỢC ĐỒ CHỮ KÝ LD – 01A

Hình thành tham số và khóa
 p, q: số nguyên tố lớn, n = p x q.
 Khóa bí mật: 1 < x < n.
 Chọn H(.): {0,1}* → Zm ,m < n.
 Chọn: n/2 < t < (p-1).(q-1).
t
 Khóa công khai: y = x mod n.
 Bí mật:x; Công khai:n,t,y; Hủy:p, q.
http://fit.mta.edu.vn/~dunglh/info.aspx
24
LƯỢC ĐỒ CHỮ KÝ LD – 01A

Thuật toán ký
 1 < k < n
t
 R = (k) mod n
 E = H(M)
R
E
 S = k . x mod n
 Chữ ký (R,S)
http://fit.mta.edu.vn/~dunglh/info.aspx
25
LƯỢC ĐỒ CHỮ KÝ LD – 01A

Thuật toán xác minh
 E = H(M)
t
 U = S mod n
E
R
 V = R . y mod n
 U = V  (R,S) hợp lệ !
http://fit.mta.edu.vn/~dunglh/info.aspx
26
LƯỢC ĐỒ CHỮ KÝ LD – 01A
 Tính
đúng đắn
t
S mod n =
=
R
E
(k .x
E
t
mod n) mod n
R t
= (k .x ) mod n
t.E
=k .x
t
t.R
mod n
R
= R . y mod n
http://fit.mta.edu.vn/~dunglh/info.aspx
27
LƯỢC ĐỒ CHỮ KÝ LD – 01A

Mức độ an toàn
 Khóa x, k không đủ lớn
 Khóa k bị sử dụng lại
 Chọn t không hợp lý
 Chọn p, q không đủ lớn
http://fit.mta.edu.vn/~dunglh/info.aspx
28
LƯỢC ĐỒ CHỮ KÝ LD – 01B

Hình thành tham số và khóa
 p, q: số nguyên tố lớn, n = p x q.
 Khóa bí mật: 1 < x < n.
 Chọn H(.): {0,1}* → Zm ,m < n.
 Chọn: m/2 < t < (p-1).(q-1).
-t
 Khóa công khai: y = x mod n.
 Bí mật:x; Công khai:n,t,y; Hủy:p, q.
http://fit.mta.edu.vn/~dunglh/info.aspx
29
LƯỢC ĐỒ CHỮ KÝ LD – 01B

Thuật toán ký
 1 < k < n
t
 R = (k) mod n
 E = H(R||M)
E
 S = k . x mod n
 Chữ ký (E,S)
http://fit.mta.edu.vn/~dunglh/info.aspx
30
LƯỢC ĐỒ CHỮ KÝ LD – 01B

Thuật toán xác minh
t
E
 R’ = S . y mod n
 E’ = H(R’||M)
 E’ = E  (E,S) hợp lệ !
http://fit.mta.edu.vn/~dunglh/info.aspx
31
LƯỢC ĐỒ CHỮ KÝ LD – 01B

Tính đúng đắn

t
E
R’ = S . Y mod n =
E
t
-t
E
= (k.x mod n) . (x mod n) mod n
E t
-t E
= (k.x ) . (x ) mod n
t
=k.x
t.E
-t.E
.x
mod n
t
= k mod n = R

E’ = H(R’||M) = H(R||M) = E
http://fit.mta.edu.vn/~dunglh/info.aspx
32
LƯỢC ĐỒ CHỮ KÝ LD – 01B

Mức độ an toàn
 Khóa x, k không đủ lớn
 Khóa k bị sử dụng lại
 Lựa chọn t không hợp lý
 Chọn p, q không đủ lớn
http://fit.mta.edu.vn/~dunglh/info.aspx
33
LƯỢC ĐỒ CHỮ KÝ LD – 02A

Hình thành tham số và khóa
 p, q: số nguyên tố lớn, q|(p-1).
(p-1)/q
 1 < h < p, g = h
mod p.
 Khóa bí mật : 1 < x < q.
-x
 Khóa công khai : y = g mod p.
 Bí mật: x; Công khai: p, q, g, y.
 Hàm băm H(.): {0,1}* —› Zq.
http://fit.mta.edu.vn/~dunglh/info.aspx
34
LƯỢC ĐỒ CHỮ KÝ LD – 02A

Thuật toán ký

1 < k < q;

E = H(M)

k
R = (g mod p) mod q
-1

S = E .(k + x.R) mod q

Chữ ký (R,S)
http://fit.mta.edu.vn/~dunglh/info.aspx
35
LƯỢC ĐỒ CHỮ KÝ LD – 02A

Thuật toán xác minh

E = H(M)
S.E
R

R’ = (g

R’ = R  (R,S) hợp lệ !
http://fit.mta.edu.vn/~dunglh/info.aspx
. y mod p) mod q
36
LƯỢC ĐỒ CHỮ KÝ LD – 02A

Tính đúng đắn
R’ = (g
S.E
R
. y mod p) mod q
k + x.R
= (g
k
= (g . g
k
. y mod p) mod q
x.R
= (g . g
R
R
. y mod p) mod q
x.R
.g
-x.R
mod p) mod q
k
= (g mod p) mod q = R
http://fit.mta.edu.vn/~dunglh/info.aspx
37
LƯỢC ĐỒ CHỮ KÝ LD – 02A

Mức độ an toàn
 Khóa x, k không đủ lớn
 Khóa k bị sử dụng lại
http://fit.mta.edu.vn/~dunglh/info.aspx
38
LƯỢC ĐỒ CHỮ KÝ LD – 02B

Hình thành tham số và khóa
 p, q: số nguyên tố lớn, q|(p-1).
(p-1)/q
 1 < h < p, g = h
mod p.
 Khóa bí mật : 1 < x < q.
-x
 Khóa công khai : y = g mod p.
 Bí mật: x; Công khai: p, q, g, y.
 Hàm băm H(.): {0,1}* —› Zq.
http://fit.mta.edu.vn/~dunglh/info.aspx
39
LƯỢC ĐỒ CHỮ KÝ LD – 02B

Thuật toán ký


1 < k < q; E = H(M)
k
R = (g mod p) mod q
-1

S = R .(k + x.E) mod q

Chữ ký (R,S)
http://fit.mta.edu.vn/~dunglh/info.aspx
40
LƯỢC ĐỒ CHỮ KÝ LD – 02B

Thuật toán xác minh

E = H(M)
S.R
E

R’ = (g

R’ = R  (R,S) hợp lệ !
http://fit.mta.edu.vn/~dunglh/info.aspx
. y mod p) mod q
41
LƯỢC ĐỒ CHỮ KÝ LD – 02B

Tính đúng đắn
S.R
R’ = (g
k + x.m
= (g
E
. y mod p) mod q
. y mod p) mod q
k
x.E
k
x.E
= (g . g
= (g . g
E
E
. y mod p) mod q
.g
-x.E
mod p) mod q
k
= (g mod p) mod q = R
http://fit.mta.edu.vn/~dunglh/info.aspx
42
LƯỢC ĐỒ CHỮ KÝ LD – 02B

Mức độ an toàn
 Khóa x, k không đủ lớn
 Khóa k bị sử dụng lại
http://fit.mta.edu.vn/~dunglh/info.aspx
43
LƯỢC ĐỒ CHỮ KÝ LD – 03A

Hình thành tham số và khóa
 p, q: số nguyên tố lớn, q|(p-1).
(p-1)/q
 1 < h < p, g = h
mod p.
 Khóa bí mật : 1 < x < q.
x
 Khóa công khai : y = g mod p.
 Bí mật: x; Công khai: p, q, g, y.
 Hàm băm H(.): {0,1}* —› Zq.
http://fit.mta.edu.vn/~dunglh/info.aspx
44
LƯỢC ĐỒ CHỮ KÝ LD – 03A

Thuật toán ký


1 < k < q; E = H(M)
k
R = (g mod p) mod q
-1

S = k.(E + x.R) mod q

Chữ ký (R,S)
http://fit.mta.edu.vn/~dunglh/info.aspx
45
LƯỢC ĐỒ CHỮ KÝ LD – 03A

Thuật toán xác minh

E = H(M)
S.E
S.R

R’ = (g

R’ = R  (R,S) hợp lệ !
http://fit.mta.edu.vn/~dunglh/info.aspx
.y
mod p) mod q
46
LƯỢC ĐỒ CHỮ KÝ LD – 03A
 Tính
đúng đắn
S.E
.y
.g
x.S.R
R’ = (g
S.E
= (g
= (g
S.R
S.(E + x.R)
mod p) mod q
mod p) mod q
mod p) mod q
k
= (g mod p) mod q = R
http://fit.mta.edu.vn/~dunglh/info.aspx
47
LƯỢC ĐỒ CHỮ KÝ LD – 03A

Mức độ an toàn
 Khóa x, k không đủ lớn
 Khóa k bị sử dụng lại
http://fit.mta.edu.vn/~dunglh/info.aspx
48
LƯỢC ĐỒ CHỮ KÝ LD – 03B

Hình thành tham số và khóa
 p, q: số nguyên tố lớn, q|(p-1).
(p-1)/q
 1 < h < p, g = h
mod p.
 Khóa bí mật : 1 < x < q.
x
 Khóa công khai : y = g mod p.
 Bí mật: x; Công khai: p, q, g, y.
 Hàm băm H(.): {0,1}* —› Zq.
http://fit.mta.edu.vn/~dunglh/info.aspx
49
LƯỢC ĐỒ CHỮ KÝ LD – 03B

Thuật toán ký


1 < k < q; E = H(M)
k
R = (g mod p) mod q
-1

S = k.(R + x.E) mod q

Chữ ký (R,S)
http://fit.mta.edu.vn/~dunglh/info.aspx
50
LƯỢC ĐỒ CHỮ KÝ LD – 03B

Thuật toán xác minh

E = H(M)
S.R
S.E

R’ = (g

R’ = R  (R,S) hợp lệ !
http://fit.mta.edu.vn/~dunglh/info.aspx
.y
mod p) mod q
51
LƯỢC ĐỒ CHỮ KÝ LD – 03B
 Tính
đúng đắn
S.R
.y
.g
x.S.E
R’ = (g
S.R
= (g
= (g
S.E
S.(R + x.E)
mod p) mod q
mod p) mod q
mod p) mod q
k
= (g mod p) mod q = R
http://fit.mta.edu.vn/~dunglh/info.aspx
52
LƯỢC ĐỒ CHỮ KÝ LD – 03B

Mức độ an toàn
 Khóa x, k không đủ lớn
 Khóa k bị sử dụng lại
http://fit.mta.edu.vn/~dunglh/info.aspx
53
LƯỢC ĐỒ CHỮ KÝ LD – 04A

Hình thành tham số và khóa
 p, q: số nguyên tố lớn.
 n = p x q; Ø(n) = (p-1)x(q-1)
 Chọn H(.): {0,1}* → Zm , m < n.
 Chọn: 1 < k < Ø(n).
 Bí mật: Ø(n); Công khai: n;
Hủy: p,q.
http://fit.mta.edu.vn/~dunglh/info.aspx
54
LƯỢC ĐỒ CHỮ KÝ LD – 04A

Thuật toán ký



1 < g < n; E = H(M)
k
T = g mod n, gcd(E.T+1,Ø(n)) = 1
(E.T+1)-1
U=g
E.T
mod n, V = U
k
k

R = U mod n, S = V mod n

Chữ ký (R,S)
http://fit.mta.edu.vn/~dunglh/info.aspx
mod n
55
LƯỢC ĐỒ CHỮ KÝ LD – 04A

Thuật toán xác minh

E = H(M)
E.(R.S mod n)

S’ = R

S’ = S  (R,S) hợp lệ !
http://fit.mta.edu.vn/~dunglh/info.aspx
mod n
56
LƯỢC ĐỒ CHỮ KÝ LD – 04A

Tính đúng đắn

E.T
U.V mod n = U.U
=g
=g


(E.T+1)-1
.g
mod n
(E.T+1)-1.E.T
(E.T+1)-1.(E.T+1)
mod n
mod n = g
k
R.S mod n = (U.V) mod n = T
S’ = R
E.(R.S mod n)
k E.T
= (U )
=S
http://fit.mta.edu.vn/~dunglh/info.aspx
mod n = R
mod n = (U
E.T
E.T k
mod n
k
) mod n = (V) mod n
57
LƯỢC ĐỒ CHỮ KÝ LD – 04A

Mức độ an toàn
 Giá trị của p, q không đủ lớn
 Giá trị của g không đủ lớn &
bị sử dụng lại (?)
http://fit.mta.edu.vn/~dunglh/info.aspx
58
LƯỢC ĐỒ CHỮ KÝ LD – 04B

Hình thành tham số và khóa
 p, q: số nguyên tố lớn.
 n = p x q; Ø(n) = (p-1)x(q-1)
 Chọn H(.): {0,1}* → Zm , m < n.
 Chọn: 1 < k < Ø(n).
 Bí mật: Ø(n); Công khai: n;
Hủy: p,q.
http://fit.mta.edu.vn/~dunglh/info.aspx
59
LƯỢC ĐỒ CHỮ KÝ LD – 04B

Thuật toán ký



1 < g < n; E = H(M)
k
-1
T = g mod n, gcd(E .T+1,Ø(n)) = 1
(E-1.T+1)-1
U=g
E-1.T
mod n, V = U
k
k

R = U mod n, S = V mod n

Chữ ký (R,S)
http://fit.mta.edu.vn/~dunglh/info.aspx
mod n
60
LƯỢC ĐỒ CHỮ KÝ LD – 04B

Thuật toán xác minh



E = H(M)
S’ = R
(R.S mod n)
E
S’ = S
http://fit.mta.edu.vn/~dunglh/info.aspx
mod n
 (R,S) hợp lệ !
61
LƯỢC ĐỒ CHỮ KÝ LD – 04B

Tính đúng đắn

E-1 .T
U.V mod n = U.U
=g
=g


(E-1.T+1)-1
.g
mod n
(E-1.T+1)-1. E-1.T
mod n
(E-1.T+1)-1. (E-1.T+1)
mod n = g
k
R.S mod n = (U.V) mod n = T
S’ = R
(R.S mod n)
(E-1.T).E
=R
= (U
http://fit.mta.edu.vn/~dunglh/info.aspx
k (E-1.T).E
mod n = (U )
E-1.T k.E
)
mod n = R
E-1.T
k.E
mod n = (V)
mod n
mod n
E
mod n = S mod n
62
LƯỢC ĐỒ CHỮ KÝ LD – 04B

Mức độ an toàn
 Giá trị của p, q không đủ lớn
 Giá trị của g không đủ lớn &
bị sử dụng lại (?)
http://fit.mta.edu.vn/~dunglh/info.aspx
63