1. Trang chủ
  2. » Tất cả

Tiêu chuẩn mật mã hóa tiên tiến aes

28 7 0

Đ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

Thông tin cơ bản

Tiêu đề Tiêu chuẩn Mật mã hóa Tiên tiến AES
Người hướng dẫn Hoàng Trọng Minh
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành An Ninh Mạng Thông Tin
Thể loại Bài tiểu luận
Định dạng
Số trang 28
Dung lượng 1,7 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khi bạn hoặc một ai đó sử dụng cây ATM này để giao dịch, thiết bị này sẽ lấy cắp thông tin của người giao dịch đổi số tài khoản giao dịch người nhận thành tài khoản của hacker và lấy đi

Trang 1

BỘ THÔNG TIN VÀ TRUYỀN THÔNG

HỌC VIÊN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

- -

BÀI TIỂU LUẬN MÔN: AN NINH MẠNG THÔNG TIN

ĐỀ TÀI: TIÊU CHUẨN MẬT MÃ HÓA TIÊN TIẾN AES

Giảng viên :Hoàng Trọng Minh

Trang 2

MỤC LỤC

MỞ ĐẦU 3

DANH MỤC HÌNH VẼ 4

BẢNG PHÂN CÔNG CÔNG VIỆC 5

DANH MỤC THUẬT NGỮ VIẾT TẮT 6

Chương 1: Tổng quan các loại thuật toán mã hoá dữ liệu 7

1 Mã hoá là gì? 7

2 Các phương pháp mã hoá 8

3 Các loại phương pháp mã hóa. 8

3.1 Mã hóa cổ điển. 8

3.2 Mã hóa một chiều. 9

3.3 Mã hóa đối xứng 9

3.4 Mã hóa bất đối xứng. 10

Chương 2: Mã hoá dữ liệu bằng AES 11

1 Đặt vấn đề 11

2 Cơ sở toán học của AES 11

3 Thuật toán AES. 11

3.1 Quá trình sinh khoá. 13

3.2 Quá trình mã hoá. 14

3.3 Quá trình giải mã. 17

4 AES so với các thật toán mã hoá khác. 19

5 Ứng dụng 20

Chương 3: Phần mềm mã hoá file sử dụng AES 21

1 Mô hình. 21

Mã hoá 21

Giải mã 21

2 Phầm mềm. 22

KẾT LUẬN 27

TÀI LIỆU THAM KHẢO 28

Trang 3

MỞ ĐẦU

Vấn đề về bảo mật và an ninh mạng hiện nay là một vấn đề quan trọng và được đặt lên hàng đầu của mọi quốc gia trên thế giới

Luôn luôn có những người muốn tìm cách xâm nhập và tấn công vào các

hệ thống mạng để thu thập các thông tin nội bộ, các dữ liệu cá nhân, bí mật của các tổ chức doanh nghiệp nhằm trục lợi hay có các ý định xấu với thông tin đoạt được

Do đó, các giải thật giúp mã hoá dữ liệu được ra đời, có rất nhiều các giải thật với các ưu nhược khác nhau nhưng tất cả đều vì một mục đích chính là giúp cho việc bảo mật thông tin được tốt hơn

Tiêu chuẩn mã hóa nâng cao (Advanced Encryption Standard) được ra đời vào năm 1999 với các ưu điểm vượt trội hơn các giải thuật khác và hiện nay đang được sử dụng rộng khắp trên nhiều lĩnh vực.

Bài tiểu luận này tìm hiểu tổng quan về mã hoá mà mã hoá sử dụng giải thuật AES Bố cục của bài tiểu luận gồm 3 chương:

Chương 1: Tổng quan về mã hoá file

Chương 2: Mã hoá dữ liệu sử dụng AES

Chương 3: Phầm mềm mã hoá file sử dụng AES

Nhóm em đã hoàn thành xong bài tiểu luận của nhóm Do có sự hạn chế

về mặt thời gian và mức độ hiểu biết của bản thân nên không thể tránh khỏi những thiếu sót trong quá trình nghiên cứu Vì thế, nhóm em rất mong nhận được những lời góp ý và sự chỉ bảo thêm của các thầy cô và các bạn để em có thêm những kiến thức phục vụ cho học tập cũng như công việc sau này

Trang 4

DANH MỤC HÌNH VẼ

Hình 1 Mô hình mã hóa và giải mã bằng thuật toán AES 12

Hình 2 Sơ đồ sinh khoá 13

Hình 3 Mô hình tạo hàm g 14

Hình 4 Bảng S-box 15

Hình 5 Quá trình Shift Rows 15

Hình 6 MixColumns tính toán trên từng cột của state 16

Hình 7 Phép biến đổi Inverse Shift Rows 18

Hình 8 Bảng Inverse S-box 18

Hình 9 So sánh AES với DES 19

Hình 10 Giao diện phần mềm 22

Hình 11 Nội dung file trước khi mã hoá 23

Hình 12 Mã hoá thành công 24

Hình 13 Nội dung file sau khi mã hoá 24

Hình 14 Giao diện khi giải mã 25

Hình 15 Trường hợp mật khẩu sai 25

Hình 16 Trường hợp sai chuẩn mã hoá 26

Hình 17 Giải mã thành công 26

Trang 5

BẢNG PHÂN CÔNG CÔNG VIỆC

Tổng quan về mã hoá

Các phương pháp mã hoá

Thuật toán mã hoá AES

AES so với DES Ứng dụng của AES Phần mềm mã hoá file sử dụng AES

Trang 6

DANH MỤC THUẬT NGỮ VIẾT TẮT

Từ viết

tắt

DES Data Encryption Standard Tiêu chuẩn Mã hóa Dữ

Trang 7

Chương 1: Tổng quan các loại thuật toán mã hoá dữ liệu

1 Mã hoá là gì?

Trong cuộc sống hiện đại ngày nay, mạng Internet đã trở thành một phần của cuộc sống chúng ta, một thứ không thể thiếu đối với cuộc sống văn minh Mạng Internet giúp ta tra cứu thông tin, học tập, làm việc,giải trí,… Giúp ta kết nối với mọi người Về cơ bản, ta có thể coi Internet như một môi trường trung gian để chúng ta

có thể trao đổi thông tin, mọi hoạt động trên Internet hầu như chỉ xoay quanh việc tiếp nhận , trao đổi và truyền nhận thông

Mạng máy tính là một môi trường mở, các thông tin được gửi lên Internet hoặc nhận về từ Internet đều có thể bị lộ bởi các đối tượng có mục đích muốn đánh cắp thông tin Do đó, việc bảo mật thông tin là rất cần thiết, một trong những phương thức bảo mật dữ liệu an toàn đã và đang được sử dụng phổ biến hiện nay đó là mã hóa thông tin Mã hóa đóng một vai trò cực kì quan trọng và được sử dụng rộng rãi trong cuộc sống hàng ngày hiện nay Giả sử con người chưa biết đến sự tồn tại của

mã hóa, hệ thống ATM sẽ không thể tồn tại, sẽ không có sự tồn tại của các chuỗi ngân hàng, không có giao dịch mua bán online, internet cũng sẽ không thể phát triển Một hacker chỉ cần một thiết bị có thể lắng nghe và chuyển đổi các gói packet được truyền đi trong mạng và gắn thiết bị này vào đường truyền mạng của một cây ATM nào đó Khi bạn hoặc một ai đó sử dụng cây ATM này để giao dịch, thiết bị này sẽ lấy cắp thông tin của người giao dịch đổi số tài khoản giao dịch người nhận thành tài khoản của hacker và lấy đi số tiền trong tài khoản của người bị đánh cắp thông tin

Có thể hiểu đơn giản mã hóa là một phương pháp bảo vệ thông tin, bằng cách chuyển đổi thông tin từ dạng có thể đọc và hiểu được thông thường sang dạng thông tin không thể hiểu theo các thông thường chỉ có người có quyền truy cập vào khóa giải mã hoặc có mật khẩu mới có thể đọc được nó Việc làm này giúp ta có thể bảo vệ thông tin tốt hơn, an toàn trong việc truyền dữ liệu Thực chất việc mã hóa dữ liệu sẽ không thể nào ngăn việc dữ liệu có thể bị đánh cắp, nhưng nó sẽ ngăn việc người khác có thể đọc được nội dung của tập tin đó, vì nó đã bị biến sang thành một dạng

ký tự khác, hay nội dung khác

Việc mã hóa là để đảm bảo tính an toàn cho thông tin, đặc biệt trong thời đại công nghệ số như hiện nay Đặc biệt là trong giao dịch điện tử Có thể nói mã hóa chính là việc đảm bảo bí mật , toàn vẹn thông tin, khi thông tin được truyền trên mạng internet Mã hóa cũng là nền tảng của kĩ thuật chữ ký điện tử

Mục đích của việc mã hóa dữ liệu là bảo vệ dữ liệu số khi nó được lưu trữ trên các hệ thống máy tính và truyền qua Internet hay các mạng máy tính khác Các thuật toán mã hóa thường cung cấp những yếu tố bảo mật then chốt như xác thực, tính toàn vẹn và không thu hồi Xác thực cho phép xác minh nguồn gốc của dữ liệu, tính toàn vẹn chứng minh rằng nội dung của dữ liệu không bị thay đổi kể từ khi nó được gửi

đi Không thu hồi đảm bảo rằng người người không thể hủy việc gửi dữ liệu

Trang 8

Quá trình mã hóa sẽ biến nội dung sang một dạng mới, vì thế sẽ tăng thêm một lớp bảo mật cho dữ liệu Như vậy cho dù dữ liệu của bạn bị đánh cắp thì việc giải mã

dữ liệu cũng vô cùng khó khăn, tốn nhiều nguồn lực tính toán và cần rất nhiều thời gian Với những công ty, tổ chức thì việc sử dụng mã hóa dữ liệu là điều cần thiết Điều này sẽ tránh được những thiệt hại khi những thông tin mật nếu vô tình bị lộ ra ngoài, cũng khó lòng giải mã ngay lập tức

Hiện nay có rất nhiều ứng dụng tin nhắn đều sử dụng mã hóa nhằm bảo mật tin nhắn cho người dùng Chúng ta có thể kể đến Facebook, WhatApps với loại mã hóa

sử dụng được gọi là End-to-End

2 Các phương pháp mã hoá

Thuật toán mã hóa là một thuật toán nhằm mã hóa thông tin của chúng ta, biến thông tin từ dạng có thể đọc hiểu dễ dàng sang một loại ngôn ngữ khác khiến người muốn đánh cắp thông tin dù có được thông tin cũng không thể hiểu được nội dung được chứa trong đó

Thông thường các thuật toán sẽ sử dụng một hoặc nhiều key ( một chuỗi các chìa khóa để mã hóa và giải mã thông tin) để mã hóa và giải mã thông tin Bạn có thể coi các key như các password để có thể đọc được các nội dung được mã hóa Người gửi

sẽ dùng key để mã hóa các thông tin và người nhận sẽ dùng key để giải mã thông tin Chỉ những người có key giải mã mới có thể đọc được nội dung thông tin

Nhưng đôi khi “kẻ thứ ba” (hacker), tuy không có key nhưng vẫn có thể giải mã được thông tin, bằng cách phá vỡ các thuật toán Và có một nguyên tắc đó là bất kì bài toán này cũng đều có lời giải, cũng như việc bất cứ thuật toán nào cũng sẽ đều có thể bị phá vỡ (vấn đề chỉ là thời gian) Không có thuật toán nào được coi là an toàn mãi mãi Độ an toàn của thuật toán được dựa trên các nguyên tắc:

• Nếu chi phí để giải mã một khối lượng thông tin lớn hơn khối lượng thông tin thì thuật toán đó tạm được coi là an toàn (không ai bỏ ra 20 năm để giải mã một thông tin chỉ đáng giá 10 triệu đồng)

• Nếu thời gian để phá vỡ một thuật toán là quá lớn ( 50 năm 100 năm, …) thì thuật toán tạm được coi là an toàn

3 Các loại phương pháp mã hóa

3.1 Mã hóa cổ điển

Đây là phương pháp mã hóa đầu tiên, và cổ xưa nhất, và hiện nay rất ít được dùng đến so với các phương pháp khác Ý tưởng của phương pháp này rất đơn giản, bên A mã hóa thông tin bằng thuật toán mã hóa cổ điển, và bên B giải mã thông tin, dựa vào thuật toán của bên A, mà không dùng đến bất kì key nào Do

đó, độ an toàn của thuật toán sẽ chỉ dựa vào độ bí mật của thuật toán, vì chỉ cần ta biết được thuật toán mã hóa, ta sẽ có thể giải mã được thông tin

Trang 9

Một ví dụ đơn giản về phương pháp mã hóa cổ điển đó là ngôn ngữ được các teen hiện nay hay sử dụng Đó là thay đổi các kí tự thông thường bằng các kí tự khác ("Hôm nay chị bận, các bạn tự làm việc nhé Mai chị qua kiểm tra", thành:

"Hum nay ckj pa^n, cb tự lv nk3 M4j ckj wa check") Bất kì ai, chỉ cần hiểu cách bạn mã hóa đều có thể giải mã thông tin được

3.2 Mã hóa một chiều

Đôi khi ra chỉ cần mã hóa thông tin mà không cần giải mã thông tin Khi đó, ta

sẽ sử dụng đến phương pháp mã hóa một chiều ( chỉ có thể mã hóa mà không thể giải mã hóa được ) Thông thường phương pháp mã hóa một chiều sẽ sử dụng hàm băm (hash funtion) để biến một chuỗi thông tin thành một chuỗi hash có độ dài nhất định Ta không có bất kì cách nào để giải mã ( khôi phục) chuỗi hash này

về chuỗi thông tin gốc ban đầu

Ví dụ, khi bạn đăng nhập vào một trang web, mật khẩu của bạn sẽ được hàm băm (hash function) “băm nhỏ” , chuyển thành một chuỗi các kí tự như

“GdsadgKdsfds” Thực chất, cơ sở dữ liệu lưu lại các kí tự mã hóa này chứ không lưu lại mật khẩu của bạn Lỡ hacker có trộm dữ liệu thì cũng chỉ thấy những kí tự khó hiểu chứ không biết password thật của bạn là gì

Đặc điểm của hash function đó là trong cùng 1 điều kiện, dữ liệu đầu vào giống nhau thì nó sẽ cho ra kết quả y hệt nhau Nếu chỉ cần thay đổi một kí tự trong chuỗi, từ chữ hoa sang chữ thường, kết quả sẽ hoàn toàn khác Cũng vì vậy mà người ta dùng hash function để kiểm tra tính toàn vẹn của dữ liệu

Thuật toán mã hóa một chiều (hàm băm) mà ta thường gặp nhất là MD5 và SHA

3.3 Mã hóa đối xứng

Mã hóa đối xứng là phương pháp mã hóa mà key mã hóa và key giải mã là như nhau (Sử dụng cùng một secret key để mã hóa và giải mã) Đây là phương pháp thông dụng nhất hiện nay dùng để mã hóa dữ liệu truyền nhận giữa hai bên Vì chỉ cần có secret key là có thể giải mã được, nên bên gửi và bên nhận cần làm một cách nào đó để cùng thống nhất về secret key

Để thực hiện mã hóa thông tin giữa hai bên thì:

▪ Đầu tiên bên gửi và bên nhận bằng cách nào đó sẽ phải thỏa thuận secret key (khóa bí mật) được dùng để mã hóa và giải mã Vì chỉ cần biết được secret key này thì bên thứ ba có thể giải mã được thông tin, nên thông tin này cần được bí mật truyền đi (bảo vệ theo một cách nào đó)

Trang 10

▪ Sau đó bên gửi sẽ dùng một thuật toán mã hóa với secret key tương ứng

để mã hóa dữ liệu sắp được truyền đi Khi bên nhận nhận được sẽ dùng chính secret key đó để giải mã dữ liệu

▪ Vấn đề lớn nhất của phương pháp mã hóa đối xứng là làm sao để “thỏa thuận” secret key giữa bên gửi và bên nhận, vì nếu truyền secret key từ bên gửi sang bên nhận mà không dùng một phương pháp bảo vệ nào thì bên thứ ba cũng có thể dễ dàng lấy được secret key này

Các thuật toán mã hóa đối xứng thường gặp: DES, AES…

3.4 Mã hóa bất đối xứng

Mã hóa bất đối xứng là phương pháp mã hóa mà trong đó key mã hóa và key giải mã khác nhau Nghĩa là key ta sử dụng để mã hóa dữ liệu sẽ khác với key ta dùng để giải mã dữ liệu Tất cả mọi người đều có thể biết được public key, và có thể dùng public key này để mã hóa thông tin Nhưng chỉ có người nhận mới nắm giữ private key, nên chỉ có người nhận mới có thể giải mã được thông tin

Để thực hiện mã hóa bất đối xứng thì:

▪ Bên nhận sẽ tạo ra một gặp khóa (public key và private key) Bên nhận

sẽ giữ lại private key và truyền cho bên gửi public key Vì public key này là công khai nên có thể truyền tự do mà không cần bảo mật

▪ Bên gửi trước khi gửi dữ liệu sẽ mã hóa dữ liệu bằng thuật toán mã hóa bất đối xứng với key là public key từ bên nhận

▪ Bên nhận sẽ giải mã dữ liệu nhận được bằng thuật toán được sử dụng ở bên gửi, với key giải mã là private key

Điểm yếu lớn nhất của mã hóa bất đối xứng là tốc độ mã hóa và giải mã rất chậm so với mã hóa đối xứng, nếu dùng mã hóa bất đối xứng để mã hóa dữ liệu truyền – nhận giữa hai bên thì sẽ tốn rất nhiều chi phí

Do đó, ứng dụng chính của mã hóa bất đối xứng là dùng để bảo mật secret key cho mã hóa đối xứng: Ta sẽ dùng phương pháp mã hóa bất đối xứng để truyền secret key của bên gửi cho bên nhận Và hai bên sẽ dùng secret key này để trao đổi thông tin bằng phương pháp mã hóa đối xứng

Thuật toán mã hóa bất đối xứng thường thấy: RSA

Trang 11

Chương 2: Mã hoá dữ liệu bằng AES

1 Đặt vấn đề

Hiện nay với tốc độ và khả năng xử lý của các bộ vi xử lý ngày càng được nâng cao, phương pháp mã hóa chuẩn DES, Tri DES đã trở nên không an toàn trong bảo mật thông tin Vì thế cần nghiên cứu chuẩn mật mã đáp ứng được nhu cầu bảo mật thông tin, chuẩn mật mã nâng cao AES ra đời

Sau khi thực hiện hai lần tuyển chọn công khai, có năm thuật toán được vào vòng chung kết, gồm có: Mars, RC6, Serpent, Twofish và Rijndael Các thuật toán này đều đạt các yêu cầu của AES nên được gọi chung là các thuật toán ứng viên AES Các thuật toán ứng viên AES có độ an toàn cao, chi phí thực hiện thấp Tuy nhiên với thiết kế đẹp và đơn giản thuật toán Rijndael do hai nhà mật mã học người Bỉ thiết kế đã được chọn là thuật toán của AES

2 Cơ sở toán học của AES

AES sử dụng trường hữu hạn Galois (GF(28) để thực hiện các phép toán: phép cộng, phép trừ, phép nhân, và phép chia Các phần tử của trường GF(28) được xem như là các đa thức

3 Thuật toán AES

AES ( viết tắt của Advanced Encryption Standard – Thuật toán mã hóa tiên tiến )

là một thuật toán mã hóa khối được thiết kế bởi Rijndael

Thuật toán AES làm việc với khối dữ liệu 128 bit và khóa độ dài là 128 bit, 192 bit và 256 bit

Mã hóa dùng AES là mã hóa khối lặp gồm nhiều chu trình, các khóa con sử dụng trong các chu trình được tạo ra bởi quá trình tạo khóa con Rijndael

Số vòng lặp phụ thuộc vào độ dài khóa: 128-10 vòng, 192-12 vòng, 256-14 vòng

Trang 12

Hình 1 Mô hình mã hóa và giải mã bằng thuật toán AES

Trang 13

3.1 Quá trình sinh khoá

Khoá đầu vào là 128 bit tương đương

16 byte (k0-k15)

W0 = 4 byte đầu tiên (k0-k3)

W1 = 4 byte đầu tiên (k4-k7)

W2 = 4 byte đầu tiên (k8-k11)

W3 = 4 byte đầu tiên (k12-k15)

Trang 14

Hàm g được tính như sau:

W khi đưa vào được dịch bit

B0 B1 B2 B3 => B1 B2 B3 B0

Sau đó Substitute Byte

XOR với Rcon

Theo như Hình 1, Quá trình mã hoá diễn ra như sau:

• Phép biến đổi ban đầu ( AddRoundKey)

• Từ vòng 1 đến vòng thứ N-1 thực hiện 4 phép biến đổi

Ngày đăng: 26/02/2023, 16:34

TỪ KHÓA LIÊN QUAN

w