Mã hóa và xác thực thông điệp bằng thuật toán mật mã với khóa sử dụng một lần

6 132 3
Mã hóa và xác thực thông điệp bằng thuật toán mật mã với khóa sử dụng một lần

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

Thông tin tài liệu

Bài viết đề xuất một thuật toán mã hóa và xác thực bản tin bằng khóa sử dụng một lần. Đây là phương pháp dựa trên sự kết hợp của phương thức xử lý mã OTP và mã khối, sử dụng hàm băm SHA256 để sinh khóa OTP ban đầu và thuật toán AES để sinh khóa OTP tiếp theo cho mỗi khối dữ liệu 256 bit. Thuật toán này sẽ tăng tốc độ mã hóa và giải mã, tăng tính bảo mật, giảm độ dài khóa bí mật, đồng thời thuật toán còn xác thực được nội dung và tác giả của bản tin và bảo mật được khóa ban đầu nhờ hệ mật khóa công khai RSA.

Kỷ yếu Hội nghị Khoa học Quốc gia lần thứ IX “Nghiên cứu ứng dụng Công nghệ thông tin (FAIR'9)”; Cần Thơ, ngày 4-5/8/2016 DOI: 10.15625/vap.2016.00035 MÃ HĨA VÀ XÁC THỰC THƠNG ĐIỆP BẰNG THUẬT TỐN MẬT MÃ VỚI KHĨA SỬ DỤNG MỘT LẦN Nguyễn Đức Tồn1, Bùi Thế Hồng2, Nguyễn Văn Tảo3, Trần Mạnh Hường4 Trường Cao đẳng Công nghiệp Thực phẩm Trường Đại học Sư phạm Kỹ thuật Hưng Yên Trường Đại học Công nghệ Thông tin Truyền thông Thái Nguyên Ban quản lý dự án VQ2 – Bộ tham mưu – Qn chủng Phịng khơng Khơng qn ductoanndt@yahoo.com, hong@ioit.ac.vn, nvtao@ictu.edu.vn, quangtm102004@gmail.com TÓM TẮT — Trong báo này, chúng tơi đề xuất thuật tốn mã hóa xác thực tin khóa sử dụng lần Đây phương pháp dựa kết hợp phương thức xử lý mã OTP mã khối, sử dụng hàm băm SHA256 để sinh khóa OTP ban đầu thuật tốn AES để sinh khóa OTP cho khối liệu 256 bit Thuật toán tăng tốc độ mã hóa giải mã, tăng tính bảo mật, giảm độ dài khóa bí mật, đồng thời thuật tốn cịn xác thực nội dung tác giả tin bảo mật khóa ban đầu nhờ hệ mật khóa cơng khai RSA Từ khóa — Hệ mật mã OTP, AES, hàm băm I GIỚI THIỆU Hệ mật mã với khóa sử dụng lần OTP (One-Time Pad) hệ mật mã dòng, chứng minh có độ an tồn hồn hảo Đặc điểm bật hệ mật mã khóa sử dụng lần khơng dùng lại Nhưng nhược điểm hệ mật mã độ dài khóa phải độ dài rõ yêu cầu khắt khe khóa phải sinh thực ngẫu nhiên Đây điều kiện khó thực chuỗi ngẫu nhiên sinh tự động máy tính giả ngẫu nhiên chúng phụ thuộc vào nhân (seed) cho trước Ngoài ra, độ dài khóa vấn đề rõ văn lớn Vì có tác giả [x2] cho OTP phương pháp mã hóa “giấy bút chì” Để vượt qua trở ngại nói trên, báo chúng tơi đề xuất lược đồ mã hóa với khóa sử dụng lần cải tiến bao gồm ba quy trình sau: - Mã hóa: Chia rõ thành khối có kích thước 256 bit Nếu khơng chẵn phải chèn thêm cho đủ khối Băm rõ hàm băm an tồn với giá trị băm có kích thước 256 bit Giá trị băm chọn làm khóa OTP khởi đầu, gọi K1 Khóa sử dụng làm chữ ký số người gửi rõ Sau đó, K1 XOR với khối rõ thứ để tạo khối mã thứ Các khóa OTP tiếp theo, Ki (i>=2) sinh cách mã hóa khối rõ thứ i-1 hệ mật Rin256 với khóa Ki-1 Các khóa sinh lại XOR với khối rõ tương ứng để tạo khối mã Ghép tất khối mã để thu mã - Ký rõ gửi mã: Khóa K1 mã hóa khóa bí mật người gửi Sau đó, lại mã hóa khóa cơng khai người nhận Gửi cho bên nhận thông tin mã hóa mã - Xác thực giải mã: Người nhận sử dụng khóa bí mật khóa cơng khai người sử dụng để giải mã khóa K1 Chia mã thành khối có kích thước 256 bit sau làm tương tự q trình mã hóa để thu rõ Trong lược đồ trên, lấy giá trị băm rõ làm khóa OTP Vì rõ văn nên giá trị băm chúng chuỗi bit ngẫu nhiên gần rõ Việc chọn giá trị băm làm khóa OTP làm giảm đáng kể độ dài khóa rõ có dung lượng lớn Các khóa sinh thuật toán AES khối rõ tương ứng với khóa sinh trước đảm bảo tính OTP Phần cịn lại báo xếp sau Mục II trình bày định nghĩa số khái niệm cần dùng báo Mục III trình bày chi tiết lược đồ mã hóa kết hợp mã khối mã khóa sử dụng lần Mục IV mơ tả quy trình cài đặt thử nghiệm đánh giá kết II MỘT SỐ ĐỊNH NGHĨA Hệ mã với khóa sử dụng lần OTP (One Time Pad) Thuật ngữ “one-time pad” dùng để phương pháp mã hóa byte rõ mã hóa byte luồng khóa byte khóa sử dụng lần không sử dụng lại Trong hệ mã độ dài khóa phải độ dài rõ phải phải luồng sinh thực ngẫu nhiên, tức byte khóa nhận giá trị khoảng từ đến 255 với xác suất độc lập với giá trị tất byte khóa khác Trong hệ mã OTP, Nguyễn Đức Toàn, Bùi Thế Hồng, Nguyễn Văn Tảo, Trần Mạnh Hường 285 rõ biểu diễn dạng chuỗi nhị phân, luồng khóa chuỗi nhị phân có độ độ dài độ dài rõ Việc mã hóa OTP thường ký hiệu Ci = Pi  Ki , (i = 1, 2, 3, ), P i ký tự thứ i rõ, Ki byte thứ i khóa sử dụng để mã hóa rõ Ci ký tự thứ i mã kết quả,  ký hiệu phép cộng loại trừ (XOR), phép toán hay dùng mã hóa OTP thay phép tốn khác Q trình giải mã làm tương tự mã hóa P i = Ci  Ki Tuy nhiên, phương pháp One-Time Pad khơng có ý nghĩa sử dụng thực tế chiều dài khóa chiều dài tin, khóa sử dụng lần, nên thay truyền khóa kênh an tồn truyền trực tiếp rõ mà không cần quan tâm đến vấn đề mã hóa Bởi chúng tơi sử dụng hàm băm để giảm độ dài khóa bí mật Hệ mã AES Rindajen: AES thuật toán mã hóa khối phủ Hoa Kỳ áp dụng làm tiêu chuẩn mã hóa từ năm 2001 Tiền thân AES thuật toán Rijndael thiết kế J Daemen V Rijmen Hai thuật toán thường gọi thay cho thực tế chúng khơng hồn tồn giống AES làm việc với khối liệu (đầu vào đầu ra) 128 bít khóa có độ dài 128, 192 256 bít Rijndael làm việc với liệu khóa có độ dài 128, 192, 256 bít Để cho thuận tiện, báo chúng tơi dùng tên AES256 để thuật tốn Rijndael với độ dài khối liệu khóa 256 bit Mã hóa khóa cơng khai: Mật mã hóa khóa cơng khai dạng mật mã hóa cho phép người sử dụng trao đổi thông tin mật mà khơng cần phải trao đổi khóa chung bí mật trước Điều thực cách sử dụng cặp khóa có quan hệ tốn học với khóa cơng khai khóa bí mật Trong hai khóa, dùng để mã hóa khóa lại dùng để giải mã Điều quan trọng hệ thống khơng thể tìm khóa bí mật biết khóa cơng khai Hệ thống mật mã hóa khóa cơng khai sử dụng với mục đích: - Mã hóa: giữ bí mật thơng tin có người có khóa bí mật giải mã - Tạo chữ ký số: cho phép kiểm tra văn có phải tạo với khóa bí mật hay khơng - Thỏa thuận khóa: cho phép thiết lập khóa dùng để trao đổi thông tin mật bên Chữ ký số khóa cơng khai: mơ hình sử dụng kỹ thuật mật mã để gắn với người sử dụng cặp khóa cơng khai - bí mật qua ký văn điện tử trao đổi thơng tin mật Khóa cơng khai thường phân phối thơng qua chứng thực khóa cơng khai tổ chức quyền tín nhiệm cấp Quá trình sử dụng chữ ký số bao gồm trình: tạo chữ ký kiểm tra chữ ký Có thể nói chữ ký số thơng tin kèm theo liệu (văn bản, hình ảnh, video ) nhằm mục đích xác định người chủ liệu Để sử dụng chữ ký số văn cần phải mã hóa hàm băm (văn "băm" thành chuỗi, thường có độ dài cố định ngắn văn bản) sau dùng khóa bí mật người chủ khóa để mã hóa, ta chữ ký số Khi cần kiểm tra, bên nhận giải mã khóa cơng khai bên gửi để lấy lại chuỗi gốc sinh qua hàm băm ban đầu, sau tự băm văn nhận so sánh hai chuỗi bít với Nếu chúng trùng khớp bên nhận tin tưởng văn nhận văn xuất phát từ người sở hữu khóa bí mật III LƯỢC ĐỒ MÃ HĨA VÀ GIẢI MÃ A Mơ tả lược đồ Lược đồ mã hóa giải mã với khóa sử dụng lần bao gồm ba quy trình thực người gửi A B Giả thiết A B thành viên hạ tầng khóa cơng khai Các khóa cơng khai bí mật A ký hiệu KAU KAR Các khóa B ký hiệu tương tự KBU KBR Lược đồ bao gồm quy trình sau: 1) Mã hóa: A chia rõ M thành khối Mi , (i=1, 2, , n) có kích thước 256 bit Nếu khơng chẵn phải chèn thêm cho đủ khối (cách chèn thêm giống hàm băm SHA) Băm rõ hàm băm an tồn SHA256 với giá trị băm có kích thước 256 bit Giá trị băm chọn làm khóa OTP khởi đầu, gọi K Khóa sử dụng làm chữ ký số người gửi rõ Sau đó, K chọn làm khóa K1 khởi đầu cho luồng khóa OTP K1 XOR với khối rõ thứ M1 để tạo khối mã thứ C1 Các khóa OTP tiếp theo, Ki (i=2, 3, , n) sinh cách mã hóa khối rõ Mi-1 hệ mật AES256 với khóa Ki-1 Các khóa sinh lại XOR với khối rõ tương ứng để tạo khối mã Ghép tất khối mã để thu mã Bản rõ: Khóa OTP ban đầu: Các khóa OTP tiếp theo: M = M M 2…M n ; | M i | = 256 bit, với i=1, 2, , n K = K1 = SHA256(M) Ki = AES256(Mi-1, Ki-1), với i=2, 3, , n Các khối mã: Ci = M i  Ki , với i=1, 2, , n Bản mã: C = C1 C2…Cn 2) Ký rõ truyền tin: A ký rõ cách mã hóa khóa OTP K (giá trị băm M) khóa bí mật KAR Sau lại mã hóa tiếp khóa cơng khai KBU B để đảm bảo B đọc khóa K A gửi cho B mã mã C: MÃ HÓA VÀ XÁC THỰC THƠNG ĐIỆP BẰNG THUẬT TỐN MẬT MÃ VỚI KHĨA SỬ DỤNG LẦN 286 E(E(K, KAR), KBU) C; E thuật tốn mã hóa khóa cơng khai RSA 3) Xác thực giải mã: B nhận chữ ký A mã hóa khóa cơng khai B mã C’ B sử dụng khóa bí mật khóa cơng khai A để giải mã chuỗi bit tạm gọi K’ Sau đó, B băm mã C’và thu chuỗi tạm gọi K” So sánh K’ với K” Nếu chúng trùng khớp B khẳng định A người gửi tin cho mình, K  K’  K” khóa OTP khởi đầu dùng để giải mã mã C  C’ B chia mã C thành khối có kích thước 256 bit sau làm tương tự q trình mã hóa A để thu rõ K’ = D(D(E(E(K, KAR), KBU), KBR),KAU) K” = SHA256(C’) Nếu K’  K” thực C = C1 C2…Cn với | C i | = 256 bit, với i=1, 2, , n K1 = K’ Ki = AES256(Ci-1, Ki-1), với i=2, 3, , n Các khối rõ: Bản rõ: Mi = C i  Ki , với i=1, 2, , n M = M M 2…M n Quy trình mã hóa mơ tả Hình cịn Hình mơ tả qui trình giải mã B Thuật tốn giải mã 1) Mã hóa: (bên A) Nguyễn Đức Tồn, Bùi Thế Hồng, Nguyễn Văn Tảo, Trần Mạnh Hường - Đầu vào: rõ M có độ dài tùy ý M chia thành khối Mi cho: M = M1 M2… Mn Đầu ra: mã M: C = C1 C2…Cn Thuật tốn: // Sinh khóa K1: K = SHA256(M); K1 = K; // Mã hóa C1 = K1  M1; For i=2; i

Ngày đăng: 26/11/2020, 00:22

Từ khóa liên quan

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

Tài liệu liên quan