950 likes | 1.88k Views
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. 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ý
E N D
CÁC LƯỢC ĐỒ CHỮ KÝ SỐ(DIGITAL SIGNATURE SCHEMES) Khái niệm Lược đồRSA/DSA Hàm bămSHA-1 Một sốlược đồ chữ ký khác http://fit.mta.edu.vn/~dunglh/info.aspx
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ácthông điệp dữ liệu • S là tập các chữ ký • K là tập cáckhóa • A là tập cácthuật toán ký • V là tập cácthuật toán xác minh • Đối với mỗi:tồn tại mộtthuật toán ký: và mộtthuật toán xác minhtương ứng: , và là những hàmsao chovớimỗi:và:thỏa mãn: . http://fit.mta.edu.vn/~dunglh/info.aspx
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
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 xq, ɸ(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-1modɸ(n). • Bí mật: d; Công khai: e,n; Hủy: p,q,ɸ(n). http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ RSA • Thuật toán ký • m = H(M) • S=mdmodn http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ RSA • Thuật toán xác minh • m = H(M) • m’=Semodn • m’=m S hợp lệ http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ RSA • Tính đúng đắn m’ = (S)e mod n = {(m) d mod n}e mod n =(m)e.d mod n = (m)k.ɸ(n)+1 mod n = {(m)ɸ(n))}k . (m)1 mod n = {1} k . (m)1 mod n= m http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ DSA • DSA = DigitaSignatureAlgorithm, 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). • 1 <h<p, g=h(p-1)/qmodp. • Khóa bí mật : 1<x<q. • Khóa công khai :y=gxmodp. • 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
LƯỢC ĐỒ CHỮ KÝ DSA • Thuật toán ký • 1 < k <q & không lặp lại. • R =(gkmodp)mod q • S=k-1.(H(M) + x.R)mod q • Chữ ký (R,S) http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ DSA • Thuật toán xác minh • W=S-1modq • U =W.H(M)mod q • V=W.Rmod q • R’=(gU.yVmodp)modq • R’= R (R,S)hợp lệ. http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ DSA • Tính đúng đắn R’ = (gU. (y)V mod p) mod q = (gW.H(M).gx.W.Rmod p) mod q = (gS-1.H.gx. S-1.R mod p) mod q = (gkmod p) modq = R http://fit.mta.edu.vn/~dunglh/info.aspx
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
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
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
HÀM BĂM SHA-1 • SHA = SecureHashAlgorithm, NSA, FIPS 180-1 1993. • Tham số kỹ thuật • LM≤264bit. • Lm=160bit. http://fit.mta.edu.vn/~dunglh/info.aspx
HÀM BĂM SHA-1 • Mở rộng bản tin Biểu diễn nhị phân của LM Biểu diễn nhị phân của M 100 ... 00 l -bit k -bit 64-bit l + kmod512 = 448 l + k + 64=nx512 M = {M1,M2,...,Mi,...Mn} http://fit.mta.edu.vn/~dunglh/info.aspx
HÀM BĂM SHA-1 • Các bộ đệm • A, B, C, D, E: 32bit. • H0, H1, H2, H3, H4: 32bit. • W0,W2,...,Wt,...,W79: 32bit. • Khởi tạo bộ đệm • H0= 67452301,H1= EFCDAB89 • H2= 98BADCFE,H3= 10325476 • H4= C3D2E1F0. http://fit.mta.edu.vn/~dunglh/info.aspx
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 = 0to15do Wt=M[t]; • For t =16to79do Wt=S1(Wt-3XORWt-8XORWt-14 XORWt-16) • A = H0, B = H1, C = H2, D = H3, E = H4. http://fit.mta.edu.vn/~dunglh/info.aspx
HÀM BĂM SHA-1 • Xử lý dữ liệu: (tiếp) • For t =0to79do Temp = S5(A) + Ft(B,C,D) + E + Wt+ Kt. E = D, D = C, C = S30(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
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
HÀM BĂM SHA-1 • Các hàm: (tiếp) • Ft(B,C,D) = (B XOR C XOR D), 60 ≤ t ≤79 • Sn(x) = (x) <<n http://fit.mta.edu.vn/~dunglh/info.aspx
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
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
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). • Khóa công khai:y=xtmod n. • Bí mật:x; Công khai:n,t,y; Hủy:p, q. http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 01A • Thuật toán ký • 1<k<n • R = (k)tmod n • E = H(M) • S=kE . xRmodn • Chữ ký(R,S) http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 01A • Thuật toán xác minh • E = H(M) • U = Stmodn • V = RE . yRmodn • U = V(R,S)hợp lệ ! http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 01A • Tính đúng đắn St mod n = = (kE.xR mod n)tmod n = (kE.xR)t mod n = kt.E. xt.R mod n = Rt. yR mod n http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 01A • Mức độ an toàn • Khóa x, kkhô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
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). • Khóa công khai:y=x-tmod n. • Bí mật:x; Công khai:n,t,y; Hủy:p, q. http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 01B • Thuật toán ký • 1<k<n • R = (k)tmod n • E = H(R||M) • S=k . xEmodn • Chữ ký(E,S) http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 01B • Thuật toán xác minh • R’ = St . yEmodn • E’ = H(R’||M) • E’ = E(E,S)hợp lệ ! http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 01B • Tính đúng đắn • R’ = St . YE mod n = = (k.xE mod n)t. (x-t mod n)E mod n = (k.xE)t . (x-t)E mod n = kt. xt.E . x-t.E mod n = kt mod n = R • E’ = H(R’||M) = H(R||M) = E http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 01B • Mức độ an toàn • Khóa x, kkhô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
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). • 1 <h<p, g=h(p-1)/qmodp. • Khóa bí mật : 1<x<q. • Khóa công khai :y=g-xmodp. • 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
LƯỢC ĐỒ CHỮ KÝ LD – 02A • Thuật toán ký • 1 < k < q; • E= H(M) • R=(gkmodp)modq • S = E-1.(k+ x.R)modq • Chữ ký (R,S) http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 02A • Thuật toán xác minh • E = H(M) • R’=(gS.E. yRmodp)mod q • R’ = R (R,S) hợp lệ ! http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 02A • Tính đúng đắn R’=(gS.E . yR mod p) mod q = (gk + x.R . yR mod p) mod q = (gk. gx.R . yR mod p) mod q = (gk . gx.R . g-x.R mod p) mod q = (gk mod p) mod q = R http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 02A • Mức độ an toàn • Khóa x, kkhông đủ lớn • Khóa k bị sử dụng lại http://fit.mta.edu.vn/~dunglh/info.aspx
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). • 1 <h<p, g=h(p-1)/qmodp. • Khóa bí mật : 1<x<q. • Khóa công khai :y=g-xmodp. • 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
LƯỢC ĐỒ CHỮ KÝ LD – 02B • Thuật toán ký • 1 < k < q; E= H(M) • R=(gkmodp)modq • S = R-1.(k+ x.E)modq • Chữ ký (R,S) http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 02B • Thuật toán xác minh • E = H(M) • R’=(gS.R. yEmodp)mod q • R’ = R (R,S) hợp lệ ! http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 02B • Tính đúng đắn R’ = (gS.R . yE mod p) mod q = (gk + x.m . yE mod p) mod q = (gk. gx.E . yE mod p) mod q = (gk . gx.E . g-x.E mod p) mod q = (gk mod p) mod q = R http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 02B • Mức độ an toàn • Khóa x, kkhông đủ lớn • Khóa k bị sử dụng lại http://fit.mta.edu.vn/~dunglh/info.aspx
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). • 1 <h<p, g=h(p-1)/qmodp. • Khóa bí mật : 1<x<q. • Khóa công khai :y=gxmodp. • 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
LƯỢC ĐỒ CHỮ KÝ LD – 03A • Thuật toán ký • 1 < k < q; E= H(M) • R=(gkmodp)modq • S = k.(E+ x.R)-1modq • Chữ ký (R,S) http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 03A • Thuật toán xác minh • E = H(M) • R’=(gS.E. yS.Rmodp)mod q • R’ = R (R,S) hợp lệ ! http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 03A • Tính đúng đắn R’ = (gS.E . yS.R mod p) mod q = (gS.E. gx.S.R mod p) mod q = (gS.(E + x.R) mod p) mod q = (gk mod p) mod q = R http://fit.mta.edu.vn/~dunglh/info.aspx
LƯỢC ĐỒ CHỮ KÝ LD – 03A • Mức độ an toàn • Khóa x, kkhông đủ lớn • Khóakbị sử dụng lại http://fit.mta.edu.vn/~dunglh/info.aspx
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). • 1 <h<p, g=h(p-1)/qmodp. • Khóa bí mật : 1<x<q. • Khóa công khai :y=gxmodp. • 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
LƯỢC ĐỒ CHỮ KÝ LD – 03B • Thuật toán ký • 1 < k < q; E= H(M) • R=(gkmodp)modq • S = k.(R+ x.E)-1modq • Chữ ký (R,S) http://fit.mta.edu.vn/~dunglh/info.aspx