Giao diện chính chương trình mã hóa des năm 2024

Hỗ trợ thanh toán qua INTERNET BANKING tất cả các ngân hàng: VietcomBank, BIDV, VietinBank, SacomBank, TechcomBank, Á Châu, TPbank, MBbank, AgriBank, VPbank, SHB, MaritimeBank, DongAbank, VIB, EximBank, HDbank, NCB, Việt Á, OceanBank, PGbank, BacAbank...

Show

Bạn cần đăng nhập để tải code qua chức năng này!

ĐĂNG NHẬP NGAY

Hỗ trợ CHUYỂN KHOẢN TRỰC TIẾP qua các số tài khoản ngân hàng: VietcomBank, BIDV, VietinBank, SacomBank, TechcomBank, Á Châu, TPbank, MBbank, AgriBank, VPbank, SHB, MaritimeBank

Bạn cần đăng nhập để tải code qua chức năng này!

ĐĂNG NHẬP NGAY

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC MÃ HÓA DES VÀ MÃ HÓA 3DES Giảng viên hướng dẫn: Sinh viên thực hiện: Lớp: – HÀ NỘI – 2022

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

  1. Mục tiêu và nội dung của đồ án
  2. Kết quả đạt được
  3. Ý thức làm việc của sinh viên: Hà Nội, ngày ... tháng ... năm 2022 Giảng viên hướng dẫn

Tài liệu tham khảo 44 iii

Bảng ký hiệu và chữ viết tắt

DES Data Encryption Standard.

3DES Triple Data Encryption Standard.

AES Advanced Encryption Standard.

P Tập bản rõ.

C Tập bản mã.

K Tập khóa.

E Tập quy tắc mã hóa.

D Tập quy tắc giải mã.

Chương 1

Tổng quan về mật mã học.

Trong chương này sẽ giới thiệu sơ lược về mật mã học, các khái niệm cơ

bản trong mật mã học và giới thiệu sơ lược về các phân loại mã hóa như:

mã hóa cổ điển và mã hóa hiện đại, mã hóa khóa bí mật và mã hóa khóa

công khai.

1 Giới thiệu về mật mã.

Mật mã (cryptology) là nghiên cứu về các kỹ thuật truyền thông an toàn

cho phép chỉ người gửi và người nhận dự định của một thông điệp xem nội

dung của nó bằng cách chuyển đổi văn bản đơn giản thông thường thành

văn bản không thể hiểu được thông qua khóa (key) và ngược lại. Mật mã

không chỉ được dùng để bảo vệ dữ liệu, chống lại các hành vi trộm cắp, sửa

đổi mà còn có thể được sử dụng để xác thực người dùng và chống chối bỏ

(người gửi và người nhậny không thể chối bỏ việc đã gửi hoặc nhận thông

tin).

Mật mã đã xuất hiện và được ứng dụng từ hàng nghìn năm trước ở La

Mã, Ả Rập,.. [5]. , tuy nhiên mật mã khi đấy chủ yếu được dùng trong lĩnh

vực quân sự. Ngày nay, nhờ sự phát triển của khoa học kĩ thuật, mật mã

được ứng dụng sâu hơn, rộng hơn không chỉ trong các lĩnh vực quân sự,

quốc phòng, an ninh mà còn trong các lĩnh vực phi quân sự như thương mại

điện tử, ngân hàng,...

1 Các khái niệm cơ bản.

Các khái niệm cơ bản được sử dụng trong mật mã được trình bày dưới

đây:

  • Thông điệp (message): là một thực thể vật lý mang thông tin cần trao đổi [1]. Ví dụ: lá thư, bức tranh, bức ảnh, bài hát, video,...
  • Bản rõ (plain text): là thuật ngữ chỉ thông điệp rõ ràng có thể dễ dàng hiểu được. Bản rõ là đầu vào của thuật toán mã hóa.
  • Bản mã (cipher text): là thuật ngữ chỉ thông điệp sau khi đã được mã hóa, có thể đọc được nhưng không thể hiểu được. Bản mã là đầu ra của thuật toán mã hóa.
  • Mã hóa (encrypt): Là quá trình che giấu thông tin bằng cách sử dụng quy tắc mã hóa biến đổi bản rõ thành bản mã.
  • Giải mã (decrypt): Là quá trình ngược với quá trình mã hóa, nhằm biến đổi bản mã trở lại bản rõ.
  • Thám mã (cryptanalysis): nghiên cứu các phương pháp phá bỏ các hệ mật, nhằm tìm ra bản rõ từ bản mã mà không biết khóa.
  • Khóa (key): Là thành phần quan trọng trong mã hóa và giải mã. Tương tự như khóa vật lý, chỉ khi có khóa mới có thể "mở" (giải mã) bản mã thành bản rõ và ngược lại. Định nghĩa 1 [2]Hệ thống mã hóa (cryptosystem) là một bộ năm (P, C, K, E, D) thỏa mãn các điều kiện sau:
  • Tập nguồn P là tập bản rõ.
  • Tập đích C là tập bản mã.
  • Tập K là tập khóa.
  • E và D lần lượt là tập quy tắc mã hóa và giải mã. Với mỗi khóa k ∈ K tồn tại luật mã hóa ek ∈ E : C → P và luật giải mã dk ∈ D : P → C sao cho: dk(ek(x)) = x, ∀x ∈ P Quy trình chung của một hệ thống mã hóa: Hình 1: Quy trình chung của một hệ thống mã hóa

Hình 1: Hệ thống mã hóa khóa bí mật Ưu điểm của mã hóa khóa bí mật: có mức độ bảo mật cao; mã hóa và giải mã được thực hiện nhanh chóng. Bên cạnh đó do giải mã và mã hóa sử dụng chung khóa dẫn đến mã hóa khóa bí mật có nhược điểm sau: việc quản lí khóa khó khăn, khóa phải đảm bảo tính bí mật, kênh truyền khóa phải an toàn, khả năng bị bên thứ ba can thiệp là rất lớn dẫn đến thông tin bị đánh cắp hoặc bị giả mạo; cần nhiều khóa khi số lượng người dùng tăng lên; khóa cần được thay đổi thường xuyên. Một số mã hóa khóa bí mật: DES, 3DES, AES.

  • Mã hóa khóa công khai (Public Key Crytography) hay còn gọi là mã hóa bất đối xứng: khóa được sử dụng trong quá trình mã hóa khác với khóa dùng trong trong quá trình giải mã và từ khóa dùng để giải mã không thể suy ra khóa dùng để mã hóa và ngược lại. Thuật toán mã hóa được gọi là mã hóa khóa công khai vì khóa dùng để mã hóa được công khai tuy nhiên khóa dùng trong giải mã là bí mật. Mỗi người tham gia hệ thống mã hóa này đều có hai khóa, một là khóa công khai dùng để mã hóa dữ liệu còn lại là khóa dùng để giải mã phải giữ bí mật. Hệ thống mã hóa kháo công khai được minh họa dưới hình sau: Hình 1: Hệ thống mã hóa khóa công khai

Ưu điểm của mã hóa khóa công khai: giải quyết được nhược điểm của mã hóa khóa bí mật, người thứ ba khó có thể can thiệp vào, bởi chỉ có người giữ khóa bí mật giải mã mới có thể giải mã được; số lượng khóa cần giữ bí mật trở nên ít hơn (chỉ cần giữ bí mật khóa giải mã). Tuy nhiên nhược điểm của mã hóa khóa công khai là tốc độ thực hiện chậm hơn nhiều so với mã hóa khóa bí mật. Một số mã hóa khóa công khai: DSA (Digital Signature Algorithm), RSA, mã hóa ElGamal.

được thị trường với lý tưởng có thể được thực hiện trên một con chip duy nhất. Nỗ lực do Walter Tuchman và Carl Meyer đứng đầu, nó không chỉ là nỗ lực của các nhà nghiên cứu của IBM mà còn có tư vấn đến từ NSA. Các nhà nghiên cứu của IBM kết hợp với sự tư vấn đến từ NSA dưới sự lạnh đạo của Walter Tuchman và Carl Meyer, đã nỗ lực tạo ra một phiên bản tinh chỉnh của LUCIFER có khả năng chống thám mã tốt hơn và có kích thước khóa giảm còn 56 bits để phù hợp với chip đơn. Năm 1974, IBM giới thiệu thuật toán LUCIFER theo lời kêu gọi thiết kế một thuật toán mã hóa có thể đáp ứng được các tiêu chuẩn nghiêm ngặt của Văn phòng tiêu chuẩn Quốc gia (NBS - National Bureau of Standard), hiện nay đã đổi tên thành Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (National Institute of Standards and Technology - NIST). Năm 1976, dự án của IBM được NIST thông qua với tên gọi của mã hóa là Tiêu chuẩn Mã hóa dữ liệu (DES). 2 Thuật toán mã hóa DES. Mã hóa DES là mã hóa khóa bí mật (hay mã hóa đối xứng). Mã hóa khóa bí mật phân loại thành: mã hóa khối và mã hóa dòng; DES thuộc mã hóa khối. DES sử dụng khóa 56 bits xử lí thông tin theo từng khối 64 bits. Thuật toán mã hóa DES gọi là DEA (Data Encryption Algorithm - thường được sử dụng giữa DES và DEA). Đầu vào của thuật toán là các khối thông tin 64 bits và đầu ra là khối thông tin 64 bits đã được mã hóa.

Sơ đồ thuật toán mã hóa DES. Hình 2: Sơ đồ thuật toán mã hóa DES. [1] Theo sơ đồ, ta thấy quá trình mã hóa DES diễn ra qua ba giai đoạn:

  • Giai đoạn 1, khối thông tin bản rõ 64 bit x thực hiện phép hoán vị IP thành khối 64 bit x 0 mới. Ta có: x 0 = IP (x)

Bảng 2: Bảng IP − 1. [3] Bảng IP − 1 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 Phép hoán vị IP − 1 : Cách đọc bảng tương tự hoàn vị IP. 2.3 Hàm Feistel (F). Hàm Feistel được coi là trái tim của thuật toán mã hóa DES. Ở giai đoạn 2 của thuật toán mã hóa, hàm F được sử dụng để biến đổi chuỗi nửa phải (R) sang một chuỗi mới có độ dài 32 bit bằng cách sử dụng khóa con 56 bit sinh bởi khóa k. Đầu vào của hàm F gồm: chuỗi 32 bits, và chuỗi khóa con gồm 56 bit. Kết quả đầu ra của hàm F là chuỗi 32 bit. Sơ đồ hoạt động của hàm F được biểu diễn qua hình 2 dưới đây, mô tả cách thức hoạt động của hàm F với A là chuỗi 32 bit đầu vào; J là khóa con 48 bit sinh bởi khóa k.

Hình 2: Sơ đồ thuật toán mã hóa DES. [1] Các bước thực hiện hàm F:

  • Bước 1: chuỗi 32 bit A đầu vào, đi qua phép mở rộng E thành chuỗi E(A) gồm 48 bit (bao gồm 32 bit từ A với 16 bit xuất hiện hai lần). Bảng 2: Bảng mở rộng E. [3] Bảng mở rộng E 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 33 Sau đó thực hiện XOR hai chuỗi E(A) và J (khóa con) thành chuỗi 48
  • Bước 3: Chuỗi 48 bit C thu được là: C = C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8. Thực hiện phép hoán vị P với C thu được đầu ra chuỗi 48 bit của hàm F: - Bảng 2: Hộp S - Hộp S - - - - - Bảng 2: Hộp S - Hộp S
    • `
      • Bảng 2: Hộp S
        • Hộp S `
    • `
    • Bảng 2: Hộp S
      • Hộp S `
        • * Bảng 2: Hộp S - Hộp S

Bảng 2: Bảng thế vị P. [3] Bảng P 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 2.3 Hàm sinh khóa con. Hàm sinh khóa tạo ra 16 khóa con 48 bit từ khóa k cho trước.Đầu vào của thuật toán là khóa K 64 bit; đầu ra của thuật toán là 16 khóa con 48 bit. Quá trình tạo khóa con được mô tả dưới hình sau: Hình 2: Sơ đồ hoạt động hàm sinh khóa. [1] Theo sơ đồ, các bước thực hiện hàm sinh khóa con là: