Mật mã ứng dụng trong an toàn thông tin (6)

6 4 0
Mật mã ứng dụng trong an toàn thông tin (6)

Đang tải... (xem toàn văn)

Thông tin tài liệu

19.10.2019 MẬT MÃ ỨNG DỤNG TRONG AN TỒN THƠNG TIN Giới thiệu chung Khóa RSA phép biến đổi sở Lược đồ mã hóa Lược đồ ký số Tiêu chuẩn tham số Bài 06 Chuẩn mật mã RSA Thuật toán RSA nguyên thủy Giới thiệu chung Khóa RSA phép biến đổi sở c = me mod n Lược đồ mã hóa m = c d mod n Lược đồ ký số Tiêu chuẩn tham số • Khóa cơng khai K P = ( n, e ) • Khóa bí mật K S = ( n, d ) Tiêu chuẩn RSA Tiêu chuẩn RSA PKCS#1 Ver 1.0-2.2 RSA Cryptography Standard TCVN 7635:2007 Tiêu chuẩn mật mã – Chữ kí số Khóa RSA Hàm chuyển đổi liệu sở I2OSP, OS2IP Phép mã hóa, giải mã sở RSAEP, RSADP Phép ký số kiểm tra chữ ký số sở RSASP, RSAVP Lược đồ mã hóa giải mã Lược đồ ký số kiểm tra chữ ký số Lược đồ định dạng (encode) liệu Cú pháp ASN.1 để biểu diễn khóa xác định lược đồ 19.10.2019 Khóa RSA phép biến đổi sở Giới thiệu chung Khóa RSA phép biến đổi sở Lược đồ mã hóa Lược đồ ký số Tiêu chuẩn tham số Khóa RSA Khóa cơng khai: K P = ( n, e ) ; GCD ( e, λ ( n ) ) = 1; λ ( n ) = LCM ( p − 1, q − 1) Khóa bí mật dạng 2: K S = ( n, d ) ; de ≡ mod λ ( n ) Khóa bí mật dạng 5: ( p, q, dP, dQ, qInv ) ; d > q; q ⋅ qInv ≡ mod p e ⋅ dP ≡ mod ( p − 1) ; e ⋅ dQ ≡ mod ( q − 1) Khóa RSA phép biến đổi sở Khóa RSA phép biến đổi sở Hàm chuyển đổi liệu sở OS2IP: Octet String To Integer Primitive x = OS2IP(X) Hàm chuyển đổi liệu sở I2OSP: Integer To Octet String Primitive X = I2OSP(x, sLen), x≥0 X = X X … X xLen ; X = X X … X xLen xxLen−i = X i x = xxLen−1 256 xLen −1 + xxLen−2 256 xLen−2 + ⋯ + x0 Ví dụ X = I2OSP(581.579.775, 6) Ví dụ x = 581.579.775 X = 22 AA33FF = 00h ⋅ 2565 + 00h ⋅ 2564 + 22h ⋅ 2563 + AAh ⋅ 2562 + 33h ⋅ 256 + FFh x = 22h ⋅ 256 + AAh ⋅ 256 + 33h ⋅ 256 + FFh X = 000022 AA33FF = 34 ⋅ 2563 + 170 ⋅ 256 + 51 ⋅ 256 + 255 = 581.579.775 Khóa RSA phép biến đổi sở Khóa RSA phép biến đổi sở Phép mã hóa, giải mã Mã hóa: c = RSAEP(KP, m) c = me mod n Giải mã: m = RSADP(KS, c) m = cd mod n Giải mã dùng khóa 5: m1 = c dP mod p; Phép ký kiểm tra chữ ký Ký: s = RSASP(KS, m) s = md mod n Ký dùng khóa 5: s1 = m dP mod p; s2 = m dQ mod q h = ( qInv ⋅ ( s1 − s2 ) ) mod p m2 = c dQ mod q s = s2 + h i q h = ( qInv ⋅ ( m1 − m2 ) ) mod p m = m2 + hiq 10 11 Kiểm tra chữ ký: m = RSAVP(KP, s) m == se mod n 12 19.10.2019 Lược đồ mã hóa giải mã Giới thiệu chung Khóa RSA phép biến đổi sở Lược đồ mã hóa Lược đồ ký số Tiêu chuẩn tham số Lược đồ mã hóa RSAES-OAEP • Phép mã hóa RSAEP • Phép giải mã RSADP • Lược đồ định dạng liệu EME-OAEP 14 Lược ñồ mã hóa giải mã Lược đồ mã hóa giải mã Lược đồ định dạng liệu EME-OAEP EM = EME-OAEP-ENCODE(M, L) EME = Encoding Method for Encryption OAEP = Optimal Asymmetric Encryption Padding M = Message, kích thước "bất kì" L = Label, xâu rỗng EM = Encoded Message, kích thước k (octet), có tính ngẫu nhiên dù M cố định Lược đồ sử dụng hàm băm Hash() hàm sinh mặt nạ MGF() 16 15 Lược đồ mã hóa giải mã Kích thước thành phần (octet): • emLen = k • seedLen=hLen • dbLen = k - hLen -1 • lHash = Hash(L) • PS = 0x00.00 01 • min(psLen)=1 • max(mLen)=k-2hlen-2 Lược đồ mã hóa giải mã Các bước biến đổi M • Kiểm tra kích thước M • Xác định psLen PS • Tính lHash • Sinh ngẫu nhiên Seed • dbMask=MGF(Seed, dbLen) • • • • 17 maskedDB=DB⊕dbMask seedMask=MGF(maskedDB,seedLen) maskedSeed =Seed⊕seedMask EM=00||maskedSeed||maskedDB 18 19.10.2019 Lược ñồ mã hóa giải mã Lược ñồ mã hóa giải mã Các bước tìm lại M • Kiểm tra octet • hLen octet tiếp theo? • Seed = ? • DB = ? • Kiểm tra lHash • Xác định, kiểm tra PS • Xác định M Phép mã hóa RSAES-OAEP-ENCRYPT(Kp,M,L) Kiểm tra kích thước M EM = EME-OAEP-ENCODE(M, L) m = OS2IP(EM) c = RSAEP(Kp, m) C = I2OSP(c, k) 20 19 Lược đồ mã hóa giải mã Phép giải mã Giới thiệu chung RSAES-OAEP-DECRYPT(Ks,C, L) Khóa RSA phép biến đổi sở Lược đồ mã hóa Lược đồ ký số Tiêu chuẩn tham số c = OS2IP(C) m = RSADP(Ks, c) EM = I2OSP(m,k) M = EME-OAEP-DECODE(EM, L) 21 Lược đồ kí kiểm tra chữ kí Lược đồ kí kiểm tra chữ kí Lược đồ kí số RSASSAPSS • Phép kí số RSASP • Phép kiểm tra chữ kí số RSAVP • Lược đồ định dạng liệu EMSA-PSS 23 Lược đồ định dạng liệu EMSA-PSS EM = EMSA-PSS-ENCODE(M, emBits) Sử dụng: sLen, Hash, MGF EMSA = Encoding Method for Signature with Apendix PSS = Probabilistic Signature Scheme M = Message, kích thước emBits: độ dài bit tối đa OS2IP(EM); tối thiểu 8hLen + 8sLen + EM = Encoded Message, kích thước emLen = emBits/8 (octet) 24 19.10.2019 Lược đồ kí kiểm tra chữ kí Lược đồ kí kiểm tra chữ kí Các thành phần lược đồ EMSA-PSS • M: Message • salt: ngẫu nhiên • pad1: octet 00 • pad2: 00.00 00.01 • Hash() • MGF() Kích thước thành phần: • • • • 25 Lược đồ kí kiểm tra chữ kí EM=EMSA-PSS-ENCODE (M, emBits) • mHash = Hash(M) • salt = sinh ngẫu nhiên • M'=pad1||mHash||salt • H=Hash(M’) • pad2=? • DB=? • dbMask=? • maskedDB=? • EM=? mLen = sLen = tùy chọn hLen dbLen=emLen-hLen-1 26 Lược đồ kí kiểm tra chữ kí 27 EM=EMSA-PSS-VERIFY (M, EM, emBits) • emLen 2( nLen /2)−( security _ strength+ 20) • Từng số số: p±1, q±1 phải có nhân tử nguyên tố lớn secruity _ strength+ 20 • Phải xác định e trước xác định d • e số lẻ 65537 ≤ e < • d > 2nLen /2 nLen − 2⋅security _ strength 33 ... 19.10.2019 Lược đồ mã hóa giải mã Giới thiệu chung Khóa RSA phép biến đổi sở Lược đồ mã hóa Lược đồ ký số Tiêu chuẩn tham số Lược đồ mã hóa RSAES-OAEP • Phép mã hóa RSAEP • Phép giải mã RSADP • Lược... phép biến đổi sở Khóa RSA phép biến đổi sở Phép mã hóa, giải mã Mã hóa: c = RSAEP(KP, m) c = me mod n Giải mã: m = RSADP(KS, c) m = cd mod n Giải mã dùng khóa 5: m1 = c dP mod p; Phép ký kiểm tra... Lược đồ mã hóa giải mã Lược đồ mã hóa giải mã Các bước tìm lại M • Kiểm tra octet • hLen octet tiếp theo? • Seed = ? • DB = ? • Kiểm tra lHash • Xác định, kiểm tra PS • Xác định M Phép mã hóa

Ngày đăng: 28/08/2022, 12:27

Tài liệu cùng người dùng

Tài liệu liên quan