1. Trang chủ
  2. » Công Nghệ Thông Tin

Chi tiết mã hóa bằng phương pháp DES

15 801 1

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

DES (viết tắt của Data Encryption Standard, hay Tiêu chuẩn Mã hóa Dữ liệu) là một phương pháp mật mã hóa được FIPS (Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976. Sau đó chuẩn này được sử dụng rộng rãi trên phạm vi thế giới. Ngay từ đầu, thuật toán của nó đã gây ra rất nhiều tranh cãi, do nó bao gồm các thành phần thiết kế mật,độ dài khóa tương đối ngắn, và các nghi ngờ về cửa sau để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) có thể bẻ khóa. Do đó, DES đã được giới nghiên cứu xem xét rất kỹ lưỡng, việc này đã thúc đẩy hiểu biết hiện đại về mật mã khối (block cipher) và các phương pháp thám mã tương ứng.

Học viên: Nguyễn Đức Dũng Lớp : 13SCT11 Thuật toán hóa DES I/ Giới thiệu sơ lược DES (viết tắt Data Encryption Standard, hay Tiêu chuẩn hóa Dữ liệu) phương pháp mật hóa FIPS (Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn thức vào năm 1976 Sau chuẩn sử dụng rộng rãi phạm vi giới Ngay từ đầu, thuật toán gây nhiều tranh cãi, bao gồm thành phần thiết kế mật,độ dài khóa tương đối ngắn, nghi ngờ cửa sau để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) bẻ khóa Do đó, DES giới nghiên cứu xem xét kỹ lưỡng, việc thúc đẩy hiểu biết đại mật khối (block cipher) phương pháp thám tương ứng II/ Cách thức hoạt động DES DES thuật toán hóa khối - có nghĩa hoạt động khối kích thước định (64-bit) trả khối có kích thước Vì kết DES hoán vị 64 bit (kết 2^64), bit số Mỗi khối 64 bit chia thành hai khối 32 bit, khối nửa trái L khối nửa phải R (phân chia sử (.dụng hoạt động định VD: Cho M tin văn đơn giản M = 0123456789ABCDEF, M :biểu diễn hệ thập lục phân M viết lại dạng nhị phân 64-bit văn M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 L = 0000 0001 0010 0011 0100 0101 0110 0111 R = 1000 1001 1010 1011 1100 1101 1110 1111 DES hoạt động khối 64 bit, sử dụng Khóa với độ dài 56 bit Các khóa thực lưu trữ với độ dài 64 bit, bit thứ khóa không sử dụng (bit thứ 8, 16, 24, 32, 40, 48, 56, 64) Tuy nhiên, bit loại bỏ tạo khóa VD: Cho K dãy thập lục phân có giá trị K = 133457799BBCDFF1 K viết lại :dưới dạng nhị phân K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 :Thuật giải hóa DES tiến hành với bước sau Bước 1: Tạo 16 khóa con, khóa có độ dài 48 bit Quá trình tạo khóa DES bit khóa hóa dựa vào bảng hóa đây, bảng PC-1 Bit thứ 57 dãy 64 trở thành bit khóa K+ mới, bit 49 bit thứ 2, … bit thứ trở thành bit cuối Lưu ý 56 bit so với độ dài bit ban đầu PC-1 18 27 36 15 22 29 17 26 35 44 23 30 37 12 25 34 43 52 31 38 45 20 33 42 51 60 39 46 53 28 41 50 59 47 54 61 49 58 11 55 62 13 57 10 19 63 14 21 VD: Từ 64 bit khóa ban đầu K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 Sau hoán vị, ta có K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111 Chia Khóa K+ thành nửa, C0 D0, nửa 28 bit C0 = 1111000 0110011 0010101 0101111 D0 = 0101010 1011001 1001111 0001111 Với C0 D0, ta tạo 16 khối Cn Dn, 1 :(for index, elem in enumerate(permTable i = index % e = (elem - 1) % :if i >= e \ =| [outByteList[index >> (inByteList[(elem - 1) >> 3] & (128 >> e)) >> (i - e) :else \ =| [outByteList[index >> (inByteList[(elem - 1) >> 3] & (128 >> e))

Ngày đăng: 02/03/2017, 12:44

w