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 1BỘ 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 2MỤ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 3MỞ ĐẦ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 4DANH 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 5BẢ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 6DANH 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 7Chươ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 8Quá 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 9Mộ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 11Chươ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 12Hình 1 Mô hình mã hóa và giải mã bằng thuật toán AES
Trang 133.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 14Hà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