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