LƯỢC ĐỒ CHUYỂN ĐỔI BẢN RÕ OAEP CHO HỆ MẬT RSA Sinh viên thực hiện: Nguyễn Tuấn Anh Nguyễn Thị Hồng Ngoan Nguyễn Thu Thùy Nội dung chính Tổng quan về OAEP Sơ lược về OAEP Lý chuyển đổi bản rõ Lược đồ chuyển đổi giải chủn đởi OAEP Độ an tồn của OAEP Chương trình mô I2OSP(x, xLen) OS2IP(X) Hash(L) MGF1(mgfSeed, maskLen) Chương trình Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA Sơ lược OAEP PKCS #1 version 2.2: RSA Cryptography Standard OAEP – Optimal Asymmetric Encryption Padding Bellare Rogaway đưa 1994 B.Johnson M.Matyas cải tiến năm 1996 OAEP thực hiện đâu? Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA Lý chuyển đổi bản rõ Công thức mã hóa giải mã của hệ mật RSA e c = m mod n d m = c mod n Từ công thức trên: • Nếu m = hoặc m = sẽ tạo c có giá trị tương ứng 0, • Nếu thực hiện mã hóa với sớ e, m có giá trị nhỏ thì m e < n ⇒ Có thể tìm m bằng cách khai bậc e của c • Ngồi ra, với hệ mật khóa công khai RSA kẻ tấn công có thể thực hiện tấn công lựa chọn bản rõ hay tấn công lựa chọn bản mã để tìm bản rõ ban đầu Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA Lược đồ OAEP Một số vấn đề liên quan Để thực hiện lược đồ sử dụng hàm: • octet = bit • I2OSP(x, xLen) • OS2IP(X) • MGF(mgfSeed, maskLen): • Hash(L) Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA Lược đồ mã hóa OAEP OAEP_encrypt(k, M, L): Input: • k: Độ dài của n (n=k octet) • M: Dài mLen octet • L: Nhãn tùy chọn liên quan đến M Output: • EM: Bản mã có độ dài k octet Tḥt toán: •Kiểm tra đợ dài của L •Kiểm tra mLen = 2hLen+2 Output: • m: thông điệp có độ dài mLen =2hLen + • lHash = Hash(L) • EM = Y || maskedSeed || maskedDB • seedMask = MGF(maskedDB, hLen) • seed = maskedSeed ⊕ seedMask • dbMask = MGF(seed, k – hLen - 1) • DB = maskedDB ⊕ dbMask • DB = lHash’ || PS || X || M • Kiểm tra Y, lHash’, X Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA Lược đồ giải mã OAEP Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA Tính chất của lược đồ OAEP Thể hiện tính chất của mạng Feistel • • Hàm Hash không cần phải có hàm ngược Hash -1 Hàm MGF không cần phải có hàm ngược MGF -1 Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA 10 Độ an toàn của OAEP Seed: Là yếu tớ mang tính ngẫu nhiên, tại mỡi thời điểm thực hiện mã hóa seed sẽ số khác để thêm vào bản mã sử dụng cho trình chuyển đổi ⇒ Với bản rõ nhất tại mỗi thời điểm mã hóa khác sẽ cho bản mã khác Hàm mặt nạ MGF1 xây dựng dựa hàm băm nên nó sẽ có đầy đủ tính chất của hàm băm Ngoài ra, hàm MGF1 có sử dụng thêm yếu tớ mang tính ngẫu nhiên => Khó để có thể truy ngược lại bản rõ có bản mã Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA 11 Chương trình mô phỏng I2OSP(x, xLen): • Đầu vào: x xLen • • Đầu ra: X số nguyên không âm để chuyển đổi độ dài chuỗi octet đầu chuỗi octet có độ dài xLen Các bước thực hiện: • • • xLen If x>= 256 : Print “Số nguyên lớn” dừng chương trình xLen-1 xLen-2 x = xxLen-1 256 + xxLen-2 256 + ……+ x1 256 + x0, với điều kiện ≤ xi< 256 Mỗi octet Xi biểu diễn cho giá trị nguyên xxLen-i với điều kiện 1≤ i ≤ xLen Ta có chuỗi octet đầu sau: X = X1X2…XxLen Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA 12 Chương trình mô phỏng OS2IP(X): • Đầu vào: X chuỗi octet cần chuyển • Đầu ra: x sớ ngun khơng âm tương ứng • Các bước thực hiện: • Có X1X2…Xn ch̃i octet của X đặt xxLen-i giá trị nguyên của Xi với điều kiện ≤ i ≤ xLen • xLen-1 xLen-2 Đặt x = xxLen-1 256 + xxLen-2 256 + ……+ x1 256 + x0 Hash(L) • Đầu vào: • Đầu ra: L: Nhãn thỏa thuận trước, mặc định chuỗi rỗng Đầu có độ dài cố định xác định trước hàm băm(160 bit đối với SHA-1) Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA 13 Chương trình mô phỏng MGF1 (mgfSeed, maskLen): • Đầu vào: mgfSeed maskLen • • Đầu ra: mầm sinh của mặt nạ chiều dài octet dự kiến của mặt nạ mask chuỗi octet có độ dài maskLen Các bước thực hiện: • • • If maskLen > 32 hLen: Print “Mặt nạ dài” stop Đặt T chuỗi octet rỗng For counter from to ⌈maskLen/hLen⌉ - 1: • Chuyển counter thành chuỗi octet C có độ dài octet C = I2OSP (counter, 4) • Nới ch̃i T với hàm Hash của mầm sinh mgfSeed C T = T || Hash (mgfSeed ||C) • Cho ch̃i octet đầu của T với độ dài maskLen, đó mask Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA 14 Chương trình mô phỏng Chương trình • Chuyển đổi rõ OAEP Lược đờ chủn đổi bản rõ OAEP cho hệ mật RSA 15 Chương trình mơ phỏng Chương trình • Giải chuyển đổi mã OAEP Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA 16 Tổng kết Kết quả đạt được: • Hiểu lý tại cần chủn đởi bản rõ hệ mật RSA • Đọc, hiểu lược đồ chuyển đổi bản rõ giải chủn đởi OAEP • Biết độ an tồn của OAEP dựa vào yếu tớ • Viết chương trình mô trình chuyển đổi bằng lược đồ OAEP Hạn chế: • Chưa đưa so sánh lược đờ OAEP lược đờ PKCS • Chưa viết chương trình bằng đồ họa Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA 17 Cảm ơn thầy và bạn đã ý lắng nghe Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA 18 ... đởi bản rõ giải chủn đởi OAEP • Biết độ an tồn của OAEP dựa vào yếu tớ • Viết chương trình mơ q trình chủn đởi bằng lược đờ OAEP Hạn chế: • Chưa đưa so sánh lược đồ OAEP lược đờ... rõ OAEP cho hệ mật RSA 14 Chương trình mơ phỏng Chương trình • Chuyển đổi rõ OAEP Lược đồ chuyển đổi bản rõ OAEP cho hệ mật RSA 15 Chương trình mô phỏng Chương trình • Giải chuyển. ..Nội dung chính Tổng quan về OAEP Sơ lược về OAEP Lý chuyển đổi bản rõ Lược đồ chuyển đổi giải chuyển đổi OAEP Độ an tồn của OAEP Chương trình mơ I2OSP(x, xLen)