• Không có kết quả nào được tìm thấy

TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG MÃ HÓA KHÓA ĐỐI XỨNG BẰNG THUẬT TOÁN RIJNDAEL

Protected

Academic year: 2022

Chia sẻ "TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG MÃ HÓA KHÓA ĐỐI XỨNG BẰNG THUẬT TOÁN RIJNDAEL "

Copied!
71
0
0

Loading.... (view fulltext now)

Văn bản

Em xin cảm ơn các thầy cô khoa Công nghệ thông tin cũng như các thầy cô trường Đại học Dân lập Hải Phòng đã nhiệt tình giảng dạy và tạo điều kiện cho em trong suốt thời gian học tập và nghiên cứu tại trường. Có rất nhiều thuật toán đã được đề xuất để bảo mật thông tin an toàn cao.

CƠ SỞ TOÁN HỌC

Các khái niệm toán học

  • Số nguyên tố và số nguyên tố cùng nhau
  • Khái niệm đồng dư
  • Định nghĩa Phi Euler
  • Thuật toán Euclide
  • Không gian Z n và Z n
    • Không gian Z n (các số nguyên theo modulo n)
    • Không gian Z n *
  • Định nghĩa cấp của một số a Z n *
  • Khái niệm Nhóm, Nhóm con, Nhóm Cyclic
    • Khái niệm Nhóm
    • Nhóm con của nhóm (G, *)
    • Nhóm Cyclic
  • Tập thặng dư bậc hai theo modulo
  • Phần tử nghịch đảo

Tập hợp các số nguyên Z với phép cộng (+) thông thường là một nhóm giao hoán, có phần tử đơn vị bằng không. Nếu tồn tại x như vậy thì nó là duy nhất và a được gọi là khả nghịch, khả nghịch. Đảo của a được kí hiệu là a- 1 .

Khái niệm Độ phức tạp của thuật toán

  • Khái niệm Thuật toán
  • Độ phức tạp của thuật toán
  • Ví dụ về việc xác định độ phức tạp của thuật toán

N2: Khi thời gian chạy của một thuật toán là bậc hai, trường hợp này chỉ có ý nghĩa thực tế đối với các bài toán tương đối nhỏ. 2N: Trong một số trường hợp thực tế, một số thuật toán nhỏ với thời gian chạy hàm mũ là phù hợp.

VẤN ĐỀ MÃ HÓA

Mật mã học

  • Giới thiệu chung
  • Định nghĩa

Khái niệm hệ mật mã

Khái niệm mã hóa (Encryption), giải mã (Decryption)

Những tính năng của hệ mã hóa

Xác minh danh tính của người đăng nhập, xác minh thêm danh tính của họ trong trường hợp ai đó cố gắng kết nối và giả vờ là người dùng hợp pháp.

Các phương pháp mã hóa

  • Phương pháp mã hóa đối xứng
    • Mã khối (Block cipher)
    • Mã dòng
  • Phương pháp mã hóa công khai

Ưu điểm: Mã hóa khóa đối xứng mã hóa và giải mã nhanh hơn Mã hóa khóa công khai. Mật mã ECB trực tiếp sử dụng thuật toán để mã hóa từng khối một. Mật mã CBC sử dụng đầu ra của hoạt động mã hóa để biến đổi đầu vào tiếp theo.

Phương pháp mã hóa CBC có thể được mô tả như một phản hồi tin nhắn được mã hóa ở phía người gửi và phản hồi ở phía người nhận. Các giá trị IV có thể được truyền đạt công khai vì chúng đã trải qua quá trình mã hóa. Mật mã CFB cũng được sử dụng để mã hóa một dãy ký tự trong đó mỗi ký tự được biểu diễn bằng m bit.

Các phương pháp mã hóa công khai giúp trao đổi khóa dễ dàng hơn. Nội dung của khóa công khai không cần phải được giữ bí mật bằng các phương pháp mã hóa thông thường. Hệ thống mật mã khóa công khai thường được sử dụng để một cặp người dùng đồng ý về khóa bí mật của hệ thống mật mã khóa riêng.

Chữ ký điện tử

  • Giới thiệu
  • Định nghĩa
  • Phân loại chữ ký số
    • Phân loại chữ ký theo đặc trưng kiểm tra chữ ký
    • Phân loại chữ ký theo mức an toàn
    • Phân loại chữ ký theo ứng dụng đặc trưng

Với mỗi khóa k K có thuật toán xác thực chữ ký sigk S và thuật toán xác thực chữ ký tương ứng verk V. Phương thức chữ ký số RSA được xây dựng dựa trên phương thức mã hóa công khai RSA. Phương pháp chữ ký điện tử ElGamal: ra đời năm 1985, sau đó được sửa đổi, bổ sung thành chuẩn chữ ký số (DSS).

Phương pháp này được xây dựng để giải bài toán về chữ ký điện tử. Là loại chữ ký trong đó người gửi chỉ cần gửi một "chữ ký", người nhận có thể khôi phục lại thông điệp đã được "chữ ký" này. Loại chữ ký mà người gửi chỉ được gửi một "chữ ký" thì cũng phải kèm theo thông điệp được "chữ ký" đó ký.

Ví dụ: Chữ ký Elgamal là chữ ký đi kèm với thông điệp, được trình bày trong phần tiếp theo. Để tránh nhân bản chữ ký để sử dụng nhiều lần, tốt nhất người gửi nên tham gia trực tiếp vào việc kiểm tra chữ ký. Ví dụ: Chữ ký không âm (Chaum-van Antverpen), trình bày trong phần tiếp theo.

Hàm băm mật mã

  • Giới thiệu về hàm băm
  • Tính chất hàm băm
  • Cấu trúc của hàm băm
  • Một số phương pháp băm
    • Hàm băm MD4
    • Hàm băm MD5
    • Hàm băm Chuẩn SHA

Trên thực tế, các thuật toán băm là các hàm một chiều, do đó rất khó để tái tạo lại thông điệp ban đầu từ thông điệp rút gọn. Hs là thông báo viết tắt của thông báo M ban đầu. 2.7.4 Các phương pháp băm khác nhau. Thông báo tóm tắt được xây dựng như một tập hợp các thanh ghi.

Thông báo ban đầu x được mở rộng thành một chuỗi bit X có độ dài là bội số của 512. Chia thông báo mở rộng thành các khối m bit - Khởi tạo hàm băm. Thông báo M được mở rộng trước khi băm để đảm bảo rằng thông báo được mở rộng là bội số của 512 hoặc 1024 bit, tùy thuộc vào thuật toán.

Kích thước và số lượng từ trong H(0) phụ thuộc vào kích thước thông báo giảm. Nói cách khác, SHA-224 sử dụng 224 bit đầu tiên trong kết quả thông báo giảm sau khi áp dụng thuật toán SHA256. Sự khác biệt chính giữa các thuật toán là số lượng bit dữ liệu an toàn cần được băm - điều này ảnh hưởng trực tiếp đến độ dài của thông báo được rút ngắn.

THUẬT TOÁN MÃ HÓA RIJNDAEL VÀ ỨNG DỤNG

Giới thiệu

Tham số, ký hiệu, thuật ngữ và hàm

Xoay từ: Một chức năng được sử dụng trong quá trình mở rộng mã khóa để xoay thành phần Nw của một từ. Lấy một từ (Nw byte), áp dụng thay thế dựa trên hộp S cho từng byte thành phần và trả về từ bao gồm Nw byte thành phần được thay thế.

Một số khái niệm toán học

  • Phép cộng
  • Phép nhân trên GF(2 8 )
    • Phép nhân với x
    • Đa thức với hệ số trên GF(2 8 )

Phép cộng hai phần tử trên GF(28) được thực hiện bằng cách cộng‖ (thực ra là phép toán XOR, ký hiệu ) các hệ số của các đơn thức tương ứng của hai đa thức tương ứng với hai toán hạng đang xét. Khi được xem xét trong biểu diễn đa thức, phép nhân trên GF(28) (ký hiệu •) tương đương với phép nhân thông thường của hai đa thức chia cho phần dư (modulo) bởi một đa thức bất khả quy bậc 8. Một đa thức được gọi là nhỏ nhất nếu và chỉ khi đa thức chỉ chia hết cho 1 và chính nó.

Kết quả là một đa thức bậc nhỏ hơn 8, vì vậy nó có thể được biểu diễn dưới dạng 1 byte. Phép nhân được định nghĩa ở trên là phép kết hợp, phép phân phối đối với phép cộng và có một phần tử đơn vị là {01}. Đối với mọi đa thức b(x) tồn tại với các hệ số nhị phân bậc nhỏ hơn 8. nghịch đảo của b(x), ký hiệu b -1(x) (được thực hiện bằng thuật toán Euclide mở rộng. Phép cộng đa thức được thực hiện bằng phép cộng ( đó là hoạt động XOR trên byte).) các hệ số của đơn thức là tương tự nhau.

Có thể rút gọn đa thức c(x) thành đa thức bậc nhỏ hơn 4 bằng cách lấy c(x) modulo thành đa thức bậc 4. Vì x4 +1 không phải là đa thức tối giản trên GF(28). ), vì vậy phép nhân với một đa thức cố định a(x) của bất kỳ lựa chọn nào không đảm bảo tính khả nghịch. Do đó, trong phương pháp của Rijndael, một đa thức a(x) đã được chọn có một phần tử nghịch đảo (modulo M(x)).

Phương pháp Rijndael

  • Quá trình mã hóa bao gồm 4 bước
    • Bước SubBytes
    • Bước ShiftRows
    • Bước MixColumns
    • Bước AddRoundKey
    • Phát sinh khóa của mỗi chu kỳ
  • Quy trình giải mã
    • Phép biến đổi InvShiftRows
    • Phép biến đổi InvSubbytes
    • Phép biến đổi InvMixColumns
  • Các vấn đề cài đặt thuật toán
  • Kết quả thử nghiệm
  • Kết luận
    • Khả năng an toàn
    • Đánh giá

Sau khi thực hiện thao tác lấy khóa đầu tiên, mảng trạng thái sẽ trải qua Nr = 10, 12 hoặc 14 chu kỳ biến đổi (tùy thuộc vào độ dài của khóa chính cũng như độ dài của khối cần xử lý). Thực hiện thao tác AddRoundKey đầu tiên trước khi thực hiện các chu kỳ mã hóa. Không – 1 chu kỳ mã hóa thông thường: mỗi chu kỳ bao gồm 4 bước chuyển đổi.

Thực hiện chu kỳ mã hóa cuối cùng: trong chu kỳ này, thao tác MixColumns bị bỏ qua. Việc tạo khóa cho các chu kỳ có thể được thực hiện mà không nhất thiết phải sử dụng mảng w[Nb*(Nr + 1)]. Thực hiện thao tác AddRoundKey đầu tiên trước khi thực hiện các chu kỳ giải mã.

Không −1 chu kỳ giải mã thông thường: mỗi chu kỳ gồm 4 bước biến đổi. Mỗi cột của trạng thái hiện tại được coi là một đa thức s(x) bậc 4 với các hệ số của GF(28) và được nhân với đa thức a-1(x) là nghịch đảo của đa thức a(x) (modulo M(x)) được sử dụng trong phép biến đổi MixColumns. Đầu ra sau khi thực hiện các phép biến đổi SubBytes, ShiftRows, MixColumns và AddRoundKey trong vòng lặp đang được xem xét.

Như vậy, mỗi cột ej của trạng thái kết quả sau khi thực hiện một chu kỳ mã hóa có thể được xác định bằng bốn phép toán XOR trên số nguyên 32 bit bằng cách sử dụng bốn bảng tra cứu T0, T1, T2 và T3. Việc sử dụng các hằng số khác nhau cho mỗi chu kỳ sẽ hạn chế khả năng đối xứng trong thuật toán.

Ứng dụng của thuật toán

  • Giao diện chương trình
  • Chức năng chính của chương trình
    • Mã hóa
    • Giải mã
  • Code thực hiện mã hóa và giải mã

Sau đó, chương trình sẽ tự động upload file key dưới dạng XML trong cùng thư mục. Nếu bạn muốn lưu tệp vào một thư mục khác, bạn sẽ nhấn nút ―LuuFile‖ để thực hiện. Nếu key file hợp lệ, nút ―GiaiMa‖ cho phép bạn thực hiện quá trình giải mã file bằng cách nhập Password tự động.

Hiện nay, với sự phát triển của khoa học và công nghệ thông tin hiện đại, ngành mật mã đã có những bước phát triển mạnh mẽ, đạt được nhiều kết quả sâu sắc về mặt lý luận và tạo cơ sở cho việc phát triển các giải pháp bảo mật, an toàn thông tin trong mọi lĩnh vực hoạt động của con người. Việc nghiên cứu thông qua các chuyên đề đã hệ thống hóa những kiến ​​thức cơ bản về lĩnh vực mã hóa, tập trung vào việc tìm hiểu phương pháp mã hóa khóa đối xứng và nghiên cứu từng bước thực hiện thuật toán mã hóa Rijndael. Bước đầu xây dựng chương trình mã hóa tập tin bằng thuật toán Rijndael sử dụng thư viện mật mã.

Mặc dù đồ án còn nhiều điểm cần được nghiên cứu và hoàn thiện nhưng do thời gian và trình độ còn hạn chế nên không thể tránh khỏi những thiếu sót và khiếm khuyết.

Tài liệu tham khảo

Tài liệu liên quan