Tải bản đầy đủ (.pdf) (33 trang)

Báo cáo giữa kì secret key encryption

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.12 MB, 33 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>BỘ GIÁO DỤC VÀ ĐÀO TẠO</b>

<b>TRƯỜNG ĐẠI HỌC SƯ PHẠM KĨ THUẬT TP.HCM</b>

KHOA KINH TẾ ---<sub> </sub><sub> </sub>

<b>---BÁO CÁO GIỮA KÌ</b>

<b>SECRET KEY ENCRYPTION</b>

<b>Mơn học:Bảo Mật Thương Mại Điện TửGiảng viên hướng dẫn :ThS. Trần Kim Toại</b>

<b>Sinh viên thực hiện:</b> Nguyễn Hồng Phúc 20126038

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>BẢNG PHÂN CÔNG</b>

<b>Nguyễn Tường Linh Đan</b>

Giới thiệu về mật mã bí mật, Substitution Cipher Monoalphabetic Substitution Cipher

Breaking Monoalphabetic Substitution Cipher Bigram, Trigram

<b>Nguyễn Hồng Phúc</b>

Giải thích thuật ngữ

Thuật toán DES, 3DES, AES, So sánh DES và AES Chế độ mã hóa ECB, chế độ mã hóa CBC

Padding Experiment, Special case Initial Vector and Common Mistakes Experiment - IV should not be predictable

<b>Nguyễn Thanh Tùng</b> Authenticated Encryption, The GCM Mode

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>MỤC LỤC</b>

<b>CHƯƠNG 1. GIỚI THIỆU...5</b>

1.1. Giới thiệu về mã hóa...5

1.2. Substitution Cipher...5

1.3. Monoalphabetic Substitution Cipher...6

1.4. Breaking Monoalphabetic Substitution Cipher...6

2.2.3. Q trình mã hóa của thuật tốn DES...11

2.2.4. Đánh giá hiệu năng...13

2.3. Triple Data Encryption Standard (3DES)...13

2.4. Advanced Encryption Standard (AES)...14

2.4.1. Giới thiệu...14

2.4.2. Đặc điểm...14

2.4.3. Quá trình mã hóa của thuật tốn AES...15

2.4.4. Đánh giá hiệu năng...15

2.5. Sự khác biệt giữa thuật toán DES và thuật toán AES...16

<b>CHƯƠNG 3. ENCRYPTION MODES...17</b>

3.1. Electronic Codebook (ECB)...17

3.2. Cipher Block Chaining (CBC)...19

3.3. Cipher Feedback (CFB)...20

3.4. Comparing encryption with CBC and CFB...22

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

3.5. Output Feedback (OFB)...23

4.3. Padding Experiment – Special case...29

<b>CHƯƠNG 5. INITIAL VECTOR...30</b>

5.1. Initial Vector and Common Mistakes...30

5.2 Experiment - IV should not be predictable...30

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>CHƯƠNG 1. GIỚI THIỆU1.1. Giới thiệu về mã hóa </b>

Mã hóa thực chất là một phương pháp biến đổi thơng tin từ dạng bình thường đến dạng trở nên khơng thể hiểu được nếu như khơng có phương tiện giải mã.

Ví dụ: Như việc mã hóa một tin nhắn theo cách mà chỉ có bên được ủy quyền mới có thể đọc được nội dung của tin nhắn gốc.

Lịch sử mã hóa có từ năm 1900 trước cơng ngun

Có 2 loại mã hóa: Secret-key Encryption (mã hóa khóa bí mật) và Public-key encryption (mã hóa khóa cơng khai)

Mã hóa khóa bí mật: cịn được gọi là mật mã đối xứng vì cùng một khóa để mã hóa và giải mã dữ liệu. Các thuật tốn mã hóa khóa bí mật nổi tiếng bao gồm Tiêu chuẩn mã hóa nâng cao (AES), Tiêu chuẩn mã hóa dữ liệu ba lần (3DES) và Mật mã Rivest 4 (RC4).

Mã hóa khóa cơng khai: Mật mã khóa cơng khai cịn được gọi là mật mã bất đối xứng vì các khóa khác nhau được sử dụng để mã hóa và giải mã dữ liệu. Mật mã khóa cơng khai u cầu tính tốn nhiều, khiến nó rất chậm. Do đó, nó thường chỉ được sử dụng để mã hóa các mẩu dữ liệu nhỏ, chẳng hạn như các khóa bí mật, thay vì cho phần lớn các giao tiếp dữ liệu được mã hóa.

Trong bài này, nhóm sẽ chỉ tập trung chủ yếu vào mã hóa khóa bí mật.

<b>1.2. Substitution Cipher</b>

Ẩn một số dữ liệu được gọi là mã hóa. Khi văn bản thuần túy được mã hóa, nó trở nên khơng thể đọc được và được gọi là bản mã. Trong một mật mã thay thế, mỗi kí tự được thay thế bằng một kí tự khác theo một hốn vị xác định của bộ 26 chữ cái đó trong bộ chữ cái tiếng anh. Tập khóa K chứa mọi hốn vị có thể có của 26 ký hiệu 0,1,2,...25 và tổng số hốn vị trong tập khóa K là 26!

Ví dụ:

Đơn vị thay thế có thể là một chữ cái, cặp chữ cái, bộ ba chữ cái,..) Hai mật mã thay thế điển hình:

- Thay thế cố định trên toàn bộ tin nhắn - Thay thế ở các vị trí khác nhau trong tin nhắn

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>1.3. Monoalphabetic Substitution Cipher</b>

Mật mã đơn chữ cái (hay còn gọi là mật mã thay thế đơn giản) là mật mã thay thế trong đó mỗi chữ cái của văn bản thuần túy được thay thế bằng một chữ cái khác trong bảng chữ cái. Nó sử dụng một khóa cố định bao gồm 26 chữ cái của một “bảng chữ cái xáo trộn”.

<b>1.4. Breaking Monoalphabetic Substitution Cipher</b>

Một cách tốt để phá mã thay thế một bảng chữ cái là thực hiện phân tích tần số của các ký tự trong bản mã, sau đó so sánh tần số thu được với tần số của từng chữ cái trong bảng chữ cái trong bản rõ tiếng Anh (hoặc bất kỳ ngôn ngữ nào mà thông báo gốc được giả định là được viết vào). Sau đó, bạn khớp ký tự có tần suất xuất hiện cao nhất trong bản mã với ký tự có tần suất xuất hiện cao nhất trong ngôn ngữ tiếng Anh và thực hiện tương tự với ký tự tiếp theo.

- Các tổ hợp chữ cái bao gồm: - Chữ thường: T, A, E, I, O

- Tổ hợp 2 chữ cái phổ biến: TH, HE, IN, ER - Tổ hợp 3 chữ cái phổ biến: THE, AND và ING

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Một số chữ cái trong bảng chữ cái tiếng Anh được sử dụng thường xuyên hơn những chữ cái khác.

Ví dụ: Các chữ cái E, T, A và O xuất hiện thường xuyên nhất trong các từ tiếng Anh, trong khi các chữ cái J, X, Q và Z xuất hiện ít hơn trong tiếng Anh. Hình bên trái cho thấy tần số của các chữ cái được tìm thấy trong tiếng Anh chuẩn. Biểu đồ được tổng hợp bằng cách sử dụng văn bản từ sách, báo và các nguồn khác. Khi chúng ta sắp xếp các tần số chữ cái này theo thứ tự tần suất xuất hiện lớn nhất đến ít nhất, E là chữ cái thường xuyên nhất, tiếp theo là T, sau đó là A, v.v…, Tương tự có thể thấy ở bản mã là n, y, v, m, h

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>1.5. Bigram</b>

Bigram là một dãy gồm 2 ký tự liền kề nhau (n=2), ví dụ: TH, HE, IN, ER,... kết quả phân tích tần suất Bigram trong tiếng anh, theo thứ tự phổ biến từ trên xuống TH, HE, IN, ER,...

Tương tự tần số bigram trong bản mã: tn, yt, nh,...

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>1.6. Trigram</b>

Trigram là một trường hợp đặc biệt của N-gram, với n là 3. Trigram thường được sử dụng trong xử lý ngôn ngữ tự nhiên để thực hiện phân tích thống kê văn bản và trong mật mã học để kiểm soát và sử dụng cho các cipher và mã hiệu. Trigram thường được dùng để dò lọc nội dung spam, dị lỗi chính tả trong văn bản.

Kết quả phân tích Trigram trong Tiếng Anh: THE, AND, ING Trigram trong ciphertext: ytn, vup, nhc,..

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>CHƯƠNG 2. CÁC THUẬT TỐN MÃ HĨA BÍ MẬT2.1. Giải thích các thuật ngữ</b>

<b>Mã hóa (encrypt): Là q trình che giấu thơng tin bằng cách sử dụng quy tắc</b>

mã hóa biến đổi bản rõ thành bản mã.

<b>Key: khóa mã là một giá trị được sử dụng để mã hóa và giải mã.</b>

<b>Round key: khóa vịng là những giá trị trung gian được tạo ra từ khóa mã trong</b>

suốt q trình mã hóa và giải mã.

<b>Khóa lập mã: Là quy tắc biến bản rõ thành bản mã.Khóa giải mã: Là quy tắc biến bản mã thành bản rõ.2.2. Data Encryption Standard (DES) </b>

2.2.1. Giới thiệu

Thuật toán DES (Data Encryption Standard) là một thuật tốn mã hóa đối xứng được sử dụng để bảo vệ dữ liệu trong các hệ thống máy tính và truyền thơng. Nó được phát triển bởi Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ vào những năm 1970 và trở thành một tiêu chuẩn quốc tế vào năm 1977.

DES là một trong những thuật tốn mã hóa đầu tiên được sử dụng rộng rãi trong các ứng dụng thương mại và chính phủ.

2.2.2. Đặc điểm

Mã hóa DES có các tính chất sau:

- Là mã <b>thuộc hệ mã Feistel </b>gồm 16 vịng, ngồi ra DES có thêm một hốn vị khởi tạo trước khi vào vịng 1 và một hốn vị kết thúc sau vịng 16.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

- Kích thước của khối là 64 bit: ví dụ thơng điệp “meetmeafterthetogaparty” biểu diễn theo mã ASCII thì mã DES sẽ mã hóa làm 3 lần, mỗi lần 8 chữ cái (64 bit): meetmeaf -tertheto - gaparty.

- Kích thước khóa là 64 bit (thực chất chỉ có 56 bit được sử dụng để mã hóa); - Mỗi vịng của DES dùng khóa con có kích thước 48 bit được trích ra từ khóa chính. 2.2.3. Q trình mã hóa của thuật tốn DES

Q trình mã hóa của DES bao gồm 16 vịng lặp được thực hiện trên khối dữ liệu ban đầu, trong đó mỗi vịng lặp sử dụng một khóa con 48 bit được tạo ra từ khóa chính.

16 vịng lặp này giống nhau trong q trình xử lý. Ngồi ra cịn có hai lần hốn vị đầu và cuối (Initial and final permutation - IP & FP). Hai quá trình này có tính chất đối nhau (Trong q trình mã hóa thì IP trước FP, khi giải mã thì ngược lại).

Sau đó, khóa 56 bit được chuyển đổi thành 16 khóa con (subkeys) 48 bit mỗi khóa con bằng cách thực hiện các bước sau:

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Sơ đồ tạo khóa con

Thuật tốn DES sử dụng khóa 64 bit, tuy nhiên chỉ sử dụng 56 bit của khóa này để mã hóa dữ liệu. Do đó, trước khi bắt đầu q trình mã hóa, khóa ban đầu phải được chuyển đổi từ 64 bit sang 56 bit bằng cách loại bỏ 8 bit thứ 8, 16, 24, 32, 40, 48, 56 và 64.

Chuyển đổi khóa (Permutation Choice 1 - PC1): Bảng chuyển đổi này có tác dụng loại bỏ 8 bit thứ 8, 16, 24, 32, 40, 48, 56 và 64 của khóa ban đầu để thu được khóa 56 bit.

56 bit này được chia thành 2 nửa 28 bit được gọi là C0 và D0, và được xử lý độc lập.

Sau mỗi chu trình, mỗi phần được dịch đi 1 hoặc 2 bit (tùy thuộc từng chu trình, nêu đó là chu trình 1,2,9,16 thì đó là dịch 1bit, cịn lại thì sẽ được dich 2bit).

Chuyển đổi khóa (Permutation Choice 2 - PC2): Bảng chuyển đổi này tạo ra khóa con 48 bit từ hai nửa 28 bit được dịch trái, bằng cách chọn các bit cụ thể từ C và D và xếp chúng theo một trình tự mới.

Với mỗi vịng lặp của q trình mã hóa, khóa 64 bit được sử dụng để tạo ra 16 khóa con, mỗi khóa con gồm 48 bit.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

2.2.4. Đánh giá hiệu năng

Thuật toán DES (Data Encryption Standard) là một thuật tốn mã hóa đối xứng cổ điển được thiết kế vào những năm 1970. Mặc dù nó được sử dụng rộng rãi trong quá khứ, hiện nay nó đã bị thay thế bởi các thuật tốn mã hóa đối xứng mạnh hơn như AES (Advanced Encryption Standard). Tuy nhiên, vẫn có thể đánh giá hiệu năng của DES dựa trên một số yếu tố sau:

Độ dài khóa: DES sử dụng khóa độ dài 56-bit, đây là một độ dài khóa khá ngắn so với các thuật tốn mã hóa đối xứng hiện đại. Điều này khiến cho DES dễ dàng bị tấn công bằng các kỹ thuật tấn cơng vét cạn khóa.

Tốc độ mã hóa: Tốc độ mã hóa của DES là khá nhanh, tuy nhiên vẫn chậm hơn so với các thuật toán mã hóa đối xứng hiện đại. Điều này do DES sử dụng nhiều vòng lặp và các phép biến đổi phức tạp hơn.

Khả năng chống lại tấn công: DES đã được phá vỡ bởi các tấn công hiện đại và khơng được xem là an tồn trong việc bảo vệ thông tin quan trọng. Những tấn công này bao gồm tấn cơng vét cạn khóa, tấn cơng bỏ qua một số vịng lặp, và các tấn cơng khác. Do đó, DES khơng được khuyến khích sử dụng cho các ứng dụng bảo mật quan trọng.

Vì những lý do trên, hiệu năng của DES không được đánh giá cao so với các thuật tốn mã hóa đối xứng hiện đại. Việc sử dụng các thuật tốn mã hóa đối xứng mạnh hơn như AES là hợp lý và được khuyến khích để bảo vệ thông tin quan trọng.

<b>2.3. Triple Data Encryption Standard (3DES)</b>

3DES (Triple Data Encryption Standard) là một phiên bản nâng cao của thuật toán DES, được sử dụng để cải thiện độ bảo mật của DES. 3DES sử dụng ba lần q trình mã hóa DES để tăng cường độ bảo mật. Trong 3DES, dữ liệu được mã hóa và giải mã bằng cách sử dụng ba khóa DES khác nhau.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Q trình mã hóa của 3DES được thực hiện theo cách sau:

Khóa ban đầu của 3DES được chia thành 3 khóa con có độ dài 56 bit mỗi khóa. Q trình mã hóa bắt đầu bằng việc sử dụng khóa con thứ nhất để mã hóa dữ liệu bằng thuật tốn DES.

Sau đó, kết quả được giải mã bằng khóa con thứ hai và tiếp tục được mã hóa bằng khóa con thứ ba.

Cuối cùng, kết quả được giải mã bằng khóa con đầu tiên.

Với cách thức này, 3DES cung cấp độ bảo mật cao hơn và được sử dụng trong nhiều ứng dụng bảo mật thơng tin, bao gồm cả thanh tốn điện tử và truyền thơng. Tuy nhiên, 3DES có tốc độ mã hóa chậm hơn so với các thuật tốn mã hóa khác có độ dài khóa lớn hơn như AES.

<b>2.4. Advanced Encryption Standard (AES) </b>

2.4.1. Giới thiệu

Thuật toán AES (Advanced Encryption Standard) là một thuật tốn mã hóa đối xứng được sử dụng rộng rãi trong các ứng dụng an ninh thơng tin. Nó được phát triển bởi NIST (National Institute of Standards and Technology) vào năm 2001 để thay thế cho thuật toán DES (Data Encryption Standard) đã cũ kỹ.

2.4.2. Đặc điểm

AES là một thuật tốn mã hóa khối đối xứng với độ dài khóa là 128 bít (một chữ số nhị phân có giá trị 0 hoặc 1), 192 bít và 256 bít tương ứng dọi là AES-128,

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

AES-192 và AES-256. AES-128 sử dụng 10 vòng (round), AES-192 sử dụng 12 vòng và AES-256 sử dụng 14 vịng.

AES là một loại mã hóa đối xứng, nghĩa là, giống như ổ khóa trước đó, chìa khóa được dùng để mã hóa dữ liệu cũng được dùng để giải mã dữ liệu đó

2.4.3. Q trình mã hóa của thuật tốn AES Vịng lặp chính của AES thực hiện các vòng sau:

- SubBytes() -thay thế các byte dữ liệu (trạng thái) - ShiftRows() -dịch vòng dữ liệu (trạng thái) - MixColumns() -trộn cột dữ liệu (trạng thái) vào - AddRoundKey(). -chèn khóa vịng

2.4.4. Đánh giá hiệu năng

Thuật tốn AES (Advanced Encryption Standard) là một thuật tốn mã hóa đối xứng hiện đại được chấp nhận rộng rãi và được sử dụng trong nhiều ứng dụng bảo mật khác nhau. Đánh giá hiệu năng của thuật tốn AES có thể được thực hiện bằng một số yếu tố sau:

Độ dài khóa: AES sử dụng khóa độ dài 128-bit, 192-bit hoặc 256-bit, đây là các độ dài khóa an tồn và khó bị tấn cơng bằng các kỹ thuật tấn cơng vét cạn khóa.

Tốc độ mã hóa: AES là một thuật tốn mã hóa đối xứng rất nhanh và được tối ưu hóa trên các nền tảng phần cứng hiện đại, bao gồm các bộ vi xử lý, bộ xử lý đồ họa, các hệ thống nhúng và các hệ thống đám mây. AES có thể được triển khai với tốc độ mã hóa lên đến hàng trăm MB/giây trên các nền tảng phần cứng hiện đại.

Khả năng chống lại tấn cơng: AES được xem là một trong những thuật tốn mã hóa đối xứng an tồn và khả năng chống lại các loại tấn công phổ biến như tấn công vét cạn khóa, tấn cơng bỏ qua một số vịng lặp, tấn cơng phân tích bảng, tấn cơng bắt đầu, v.v. được chứng minh trong thực tế.

Kích thước mã hóa và độ tin cậy: AES cho phép mã hóa các khối dữ liệu đầu vào lên đến 128-bit và có độ tin cậy cao, cho phép bảo vệ các thông tin quan trọng trước các loại tấn công phổ biến.

Tổng kết lại, hiệu năng của thuật toán AES được đánh giá rất cao trong việc bảo vệ thông tin quan trọng. Nó có độ an tồn cao, tốc độ mã hóa nhanh và khả năng triển khai trên nhiều nền tảng phần cứng khác nhau.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>2.5. Sự khác biệt giữa thuật toán DES và thuật toán AES</b>

Bản rõ là 64 bit Bản rõ có thể là 128, 192 hoặc 256 bit DES so với AES có kích thước khóa nhỏ

AES có kích thước khóa lớn hơn so với DES

12 vịng cho thuật tốn 192 bit 14 vịng cho thuật tốn 256 bit Tên vịng: Giấy phép mở rộng, Xor,

S-box, P-S-box, Xor và Swap

Tên vòng: Subbyte, Shiftbow, Mix cột,

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>CHƯƠNG 3. ENCRYPTION MODES </b>

Chế độ mã hóa là cách thức thực hiện mã hóa thông điệp đầu vào và tạo ra thông điệp đầu ra tương ứng. Có nhiều chế độ mã hóa khác nhau được sử dụng trong các ứng dụng mã hóa, bao gồm:

ECB (Electronic Codebook) CBC (Cipher Block Chaining) CFB (Cipher Feedback) OFB (Output Feedback) CTR (Counter)

<b>3.1. Electronic Codebook (ECB)</b>

ECB (Electronic Codebook) là chế độ mã hóa đơn giản nhất trong các chế độ mã hóa. Với chế độ này, mỗi khối dữ liệu sẽ được mã hóa độc lập với các khối dữ liệu khác và khơng có bất kỳ liên kết nào giữa các khối dữ liệu.

Quá trình mã hóa của chế độ ECB gồm các bước sau:

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<i>Phân chia dữ liệu thành các khối cùng kích thước: Dữ liệu được phân chia</i>

thành các khối có kích thước cố định (ví dụ: 64-bit, 128-bit, 256-bit). Nếu dữ liệu khơng đủ kích thước, các khối cuối cùng sẽ được bổ sung thêm các giá trị không dùng (padding) để đạt được kích thước mong muốn.

<i>Mã hóa các khối dữ liệu: Mỗi khối dữ liệu được mã hóa độc lập với các khối</i>

dữ liệu khác bằng cách sử dụng cùng một khóa mã hóa. Thuật tốn mã hóa sử dụng phép XOR (hoặc một phép tốn khác tùy thuộc vào thuật tốn mã hóa) để kết hợp khối dữ liệu với khóa mã hóa và tạo ra khối dữ liệu được mã hóa.

<i>Gộp các khối dữ liệu đã mã hóa: Các khối dữ liệu đã được mã hóa được gộp lại</i>

để tạo ra dữ liệu mã hóa đầy đủ.

Việc giải mã dữ liệu được thực hiện bằng cách áp dụng các bước trên theo thứ tự ngược lại: tách dữ liệu đã mã hóa thành các khối, giải mã từng khối dữ liệu bằng cùng một khóa giải mã, và gộp các khối dữ liệu giải mã lại để thu được dữ liệu gốc.

Đối với chế độ mã hóa ECB có một nhược điểm rất lớn: Khi cùng một khối dữ liệu được mã hóa nhiều lần bằng cùng một khóa mã hóa, kết quả đầu ra sẽ giống nhau. Điều này dẫn đến việc kẻ tấn cơng có thể dễ dàng phát hiện ra các mẫu của dữ liệu và phân tích nội dung dữ liệu gốc.

Hình chim cánh cụt là ví dụ minh họa lỗ hổng bảo mật lớn với chế độ mã hóa này:

</div>

×