Giáo trình Cơ sở ATTT - Chương 4: Đảm bảo An toàn thông tin bằng Mã hóa

Giáo trình Cơ sở An toàn thông tin (Phần 2) giới thiệu các khái niệm mã hóa: mã hóa đối xứng (AES), bất đối xứng (RSA) và các hàm băm MD5, SHA1.

Chuyên ngành

An toàn thông tin

Người đăng

Ẩn danh

Thể loại

Giáo trình

2018

65
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Khám phá nền tảng Mật mã học trong An toàn thông tin

Mã hóa là nền tảng cốt lõi của an toàn thông tin hiện đại, đóng vai trò then chốt trong việc bảo vệ dữ liệu khỏi các truy cập trái phép. Lĩnh vực mật mã học (cryptography) nghiên cứu các phương pháp chuyển đổi thông tin từ định dạng có thể đọc được sang dạng không thể hiểu được và ngược lại. Mục tiêu chính là đảm bảo các thuộc tính an toàn cơ bản như tính bí mật, tính toàn vẹn, tính xác thực và khả năng chống chối bỏ. Để hiểu rõ về cơ chế hoạt động và ứng dụng của mã hóa, việc nắm vững các khái niệm nền tảng như bản rõ, bản mã, khóa, cùng với lịch sử phát triển của ngành là bước đi đầu tiên và quan trọng nhất. Từ những kỹ thuật thô sơ thời cổ đại đến các thuật toán phức tạp ngày nay, mã hóa đã trở thành một công cụ không thể thiếu trong mọi hoạt động trên không gian mạng.

1.1. Các khái niệm cốt lõi Bản rõ Bản mã và Khóa mã hóa

Theo Giáo trình Cơ sở an toàn thông tin của tác giả Hoàng Xuân Dậu, để bắt đầu với mật mã học, cần phân biệt rõ các thuật ngữ cơ bản. Bản rõ (Plaintext) là thông tin gốc ở dạng có thể hiểu được, chưa qua xử lý. Bản mã (Ciphertext) là thông tin sau khi đã được xáo trộn thông qua quá trình Mã hóa (Encryption) và trở nên không thể đọc nếu không có phương tiện giải mã. Quá trình ngược lại, chuyển bản mã về bản rõ, được gọi là Giải mã (Decryption). Yếu tố trung tâm của quá trình này là Khóa (Key) - một chuỗi dữ liệu bí mật được sử dụng cùng với thuật toán để thực hiện mã hóa và giải mã. Tập hợp tất cả các khóa có thể có của một hệ mã hóa được gọi là Không gian khóa (Keyspace). Độ an toàn của một hệ mã hóa phụ thuộc lớn vào độ lớn của không gian khóa; ví dụ, một khóa 64-bit sẽ có không gian khóa là 2^64, khiến việc đoán mò trở nên bất khả thi về mặt tính toán. Việc giữ bí mật khóa là nguyên tắc tối quan trọng để đảm bảo bảo mật dữ liệu.

1.2. Lịch sử ngành mật mã và vai trò bảo mật dữ liệu hiện đại

Lịch sử của mật mã học gắn liền với lịch sử phát triển của toán học và máy tính. Các kỹ thuật mã hóa thô sơ đã xuất hiện từ 4000 năm trước ở Ai Cập cổ đại. Tuy nhiên, ngành này chỉ thực sự phát triển mạnh mẽ vào thế kỷ 20, đặc biệt trong hai cuộc Thế chiến với các cỗ máy mã hóa phức tạp. Các cột mốc quan trọng của kỷ nguyên hiện đại bao gồm việc công bố chuẩn thuật toán DES (Data Encryption Standard) vào năm 1976. Cùng năm, Whitfield Diffie và Martin Hellman đã giới thiệu khái niệm đột phá về mã hóa khóa bất đối xứng, giải quyết bài toán phân phối khóa. Đến năm 1977, thuật toán RSA ra đời, trở thành chuẩn mực cho mã hóa khóa công khai. Năm 2001, thuật toán AES (Advanced Encryption Standard) được công nhận, mang lại hiệu suất và độ an toàn vượt trội. Ngày nay, mã hóa là nền tảng cho an ninh mạng, được ứng dụng để đảm bảo tính bí mật (confidentiality), toàn vẹn dữ liệu (integrity), xác thực (authentication) và chống chối bỏ (non-repudiation) trong mọi lĩnh vực, từ giao dịch ngân hàng, truyền thông đến bảo vệ an ninh quốc gia.

1.3. Phân loại hệ mã hóa chính Mã hóa dòng và Mã hóa khối

Các thuật toán mã hóa hiện đại chủ yếu được phân thành hai loại chính: mã hóa dòng và mã hóa khối. Mã hóa dòng (Stream cipher) xử lý dữ liệu theo từng đơn vị nhỏ, thường là từng bit hoặc ký tự. Mỗi bit của bản rõ sẽ được kết hợp (thường bằng phép toán XOR) với một bit tương ứng từ một dòng khóa (keystream) được tạo ra từ khóa gốc. Ưu điểm của phương pháp này là tốc độ nhanh và phù hợp cho các luồng dữ liệu thời gian thực, ví dụ như trong viễn thông với các thuật toán như RC4. Ngược lại, Mã hóa khối (Block cipher) chia bản rõ thành các khối có kích thước cố định (ví dụ 64 hoặc 128 bit) và thực hiện mã hóa trên từng khối một cách độc lập. Các thuật toán như thuật toán DES, 3-DES, và thuật toán AES là những ví dụ tiêu biểu. Mã hóa khối thường phức tạp hơn nhưng cung cấp các cơ chế bảo mật mạnh mẽ, được sử dụng rộng rãi trong việc mã hóa các tệp tin, cơ sở dữ liệu và các kênh truyền thông yêu cầu độ bảo mật dữ liệu cao.

II. Phân tích các phương pháp tấn công mật mã Cryptanalysis

Đối trọng với mật mã họcthám mã hay tấn công mật mã (Cryptanalysis) - nghệ thuật và khoa học phá vỡ các hệ thống mã hóa. Mục tiêu của thám mã là tìm ra bản rõ từ bản mã mà không biết trước khóa bí mật, hoặc thậm chí tìm ra khóa bí mật. Sự tồn tại của thám mã tạo ra một cuộc chạy đua không ngừng: các nhà mật mã học phát triển thuật toán mới, trong khi các nhà thám mã tìm cách bẻ gãy chúng. Hiểu rõ các phương pháp tấn công là điều kiện tiên quyết để thiết kế và triển khai các hệ thống mã hóa an toàn, có khả năng chống lại các mối đe dọa hiện hữu và tiềm tàng. Một hệ mã hóa chỉ được coi là an toàn khi chi phí để phá vỡ nó vượt xa giá trị của thông tin được bảo vệ, hoặc thời gian cần thiết để phá mã dài hơn vòng đời hữu ích của thông tin.

2.1. Giới thiệu về Thám mã Nghệ thuật phá vỡ hệ thống mã hóa

Theo định nghĩa trong tài liệu, Thám mã (Cryptanalysis) là "quá trình giải mã thông điệp đã bị mã hóa mà không cần có trước thông tin về giải thuật mã hóa và khóa mã". Đây là một lĩnh vực chuyên sâu, kết hợp giữa toán học, thống kê và khoa học máy tính. Mục tiêu cuối cùng của một nhà thám mã không chỉ là đọc một thông điệp cụ thể mà còn là khám phá ra những điểm yếu mang tính hệ thống của thuật toán hoặc quy trình triển khai. Bất kỳ một sai sót nào, dù là nhỏ nhất, trong thiết kế thuật toán, trong quá trình sinh khóa, hoặc trong việc quản lý khóa, đều có thể trở thành lỗ hổng để kẻ tấn công khai thác. Lĩnh vực tấn công mật mã đóng vai trò như một "kiểm thử viên", giúp xác định độ vững chắc thực sự của một hệ mã hóa trước khi nó được đưa vào sử dụng rộng rãi để bảo mật dữ liệu quan trọng.

2.2. Các dạng tấn công mật mã phổ biến và cách phòng chống

Các cuộc tấn công mật mã có thể được phân loại dựa trên lượng thông tin mà kẻ tấn công có. Phổ biến nhất là tấn công vét cạn (brute-force attack), tức là thử tất cả các khóa có thể có trong không gian khóa. Để chống lại phương pháp này, các hệ mã hóa hiện đại như thuật toán AESthuật toán RSA sử dụng khóa có độ dài rất lớn (từ 128 bit trở lên), khiến việc vét cạn trở nên bất khả thi với công nghệ tính toán hiện tại. Một dạng tấn công khác là tấn công phân tích, tập trung vào việc khai thác các đặc điểm toán học hoặc các điểm yếu trong cấu trúc của thuật toán. Ví dụ, việc lựa chọn các tham số sinh khóa RSA không đúng cách có thể làm cho việc phân tích thừa số trở nên dễ dàng hơn. Để phòng chống, cần tuân thủ nghiêm ngặt các khuyến nghị về độ dài khóa, sử dụng các thuật toán đã được kiểm chứng rộng rãi, và đảm bảo quá trình sinh số ngẫu nhiên để tạo khóa phải thực sự ngẫu nhiên và không thể dự đoán.

III. Hướng dẫn mã hóa đối xứng Tốc độ và bảo mật hiệu quả

Mã hóa đối xứng (Symmetric encryption), hay còn gọi là mã hóa khóa bí mật, là một trong hai trụ cột chính của mật mã học hiện đại. Đặc điểm nhận dạng của phương pháp này là việc sử dụng một khóa duy nhất cho cả quá trình mã hóa và giải mã. Khóa này phải được chia sẻ một cách an toàn giữa bên gửi và bên nhận trước khi quá trình truyền tin diễn ra. Ưu điểm vượt trội của mã hóa đối xứng là tốc độ xử lý rất nhanh, phù hợp để mã hóa khối lượng lớn dữ liệu. Tuy nhiên, thách thức lớn nhất của nó nằm ở việc quản lý và phân phối khóa an toàn, đặc biệt trong các hệ thống có nhiều người dùng. Các thuật toán như DES, 3-DES và AES là những đại diện tiêu biểu, đã và đang được ứng dụng rộng rãi trên toàn cầu.

3.1. Nguyên tắc cốt lõi của mã hóa khóa đối xứng Symmetric

Nguyên tắc hoạt động của mã hóa đối xứng dựa trên một khóa bí mật được chia sẻ (Shared Secret Key). Bên gửi sử dụng khóa này và một thuật toán mã hóa để biến bản rõ thành bản mã. Sau đó, bản mã được truyền đi qua một kênh không an toàn. Tại phía nhận, người nhận sử dụng chính xác cùng một khóa bí mật và thuật toán giải mã tương ứng để khôi phục lại bản rõ ban đầu. Như được minh họa trong Giáo trình Cơ sở an toàn thông tin, toàn bộ tính bảo mật của hệ thống phụ thuộc hoàn toàn vào việc giữ bí mật của khóa chia sẻ. Nếu khóa bị lộ, bất kỳ ai cũng có thể giải mã thông điệp. Mặc dù có nhược điểm về phân phối khóa, symmetric encryption vẫn là lựa chọn hàng đầu cho việc mã hóa dữ liệu lưu trữ (data-at-rest) và các kênh truyền thông tốc độ cao nhờ hiệu suất vượt trội so với mã hóa bất đối xứng.

3.2. Phân tích thuật toán DES và biến thể 3 DES kinh điển

Thuật toán DES (Data Encryption Standard) là một chuẩn mã hóa khối được phát triển vào những năm 1970. Nó hoạt động trên các khối dữ liệu 64-bit và sử dụng một khóa có kích thước hiệu dụng là 56-bit. Cấu trúc của DES dựa trên mạng Feistel, trải qua 16 vòng lặp xử lý phức tạp bao gồm hoán vị và thay thế. Mặc dù đã từng là một chuẩn mực, nhưng với sự phát triển của sức mạnh tính toán, không gian khóa 56-bit của DES trở nên không còn an toàn trước các cuộc tấn công mật mã kiểu vét cạn. Để khắc phục điểm yếu này, 3-DES (Triple DES) ra đời. Phương pháp này áp dụng thuật toán DES ba lần liên tiếp trên mỗi khối dữ liệu với một bộ gồm ba khóa (K1, K2, K3), nâng tổng kích thước khóa hiệu dụng lên 112 hoặc 168 bit. 3-DES đã tăng cường đáng kể độ an toàn nhưng phải đánh đổi bằng việc tốc độ thực thi chậm đi đáng kể.

3.3. Tìm hiểu thuật toán AES Chuẩn mã hóa tiên tiến nhất

Thuật toán AES (Advanced Encryption Standard) được công nhận vào năm 2001 để thay thế cho DES và đã trở thành chuẩn mã hóa được tin dùng nhất trên thế giới. AES là một thuật toán mã hóa khối, hoạt động trên các khối 128-bit và hỗ trợ các kích thước khóa 128, 192 hoặc 256 bit. Khác với DES, AES được xây dựng dựa trên mạng hoán vị-thay thế (substitution-permutation network), thực hiện các phép biến đổi trên một ma trận 4x4 gọi là "state". Mỗi vòng lặp của AES bao gồm bốn bước chính: SubBytes (thay thế phi tuyến tính), ShiftRows (hoán vị dòng), MixColumns (trộn cột) và AddRoundKey (kết hợp với khóa vòng). Với thiết kế thông minh, AES không chỉ cung cấp mức độ bảo mật dữ liệu rất cao mà còn có tốc độ thực thi vượt trội trên cả phần mềm và phần cứng, đặc biệt khi được hỗ trợ bởi tập lệnh AES-NI trên các bộ vi xử lý hiện đại.

IV. Bí quyết mã hóa bất đối xứng và quản lý khóa công khai

Mã hóa bất đối xứng (Asymmetric encryption), hay mã hóa khóa công khai, là một cuộc cách mạng trong lĩnh vực mật mã học. Nó giải quyết được bài toán nan giải nhất của mã hóa đối xứng: làm thế nào để trao đổi khóa một cách an toàn. Thay vì một khóa duy nhất, phương pháp này sử dụng một cặp khóa có quan hệ toán học với nhau: một khóa công khai (public key) và một khóa bí mật (private key). Khóa công khai có thể được phân phối rộng rãi mà không ảnh hưởng đến tính bảo mật, trong khi khóa bí mật phải được chủ sở hữu giữ tuyệt đối an toàn. Mô hình này không chỉ dùng để mã hóa mà còn là nền tảng cho các công nghệ quan trọng khác như chữ ký sốhạ tầng khóa công khai (PKI).

4.1. Cơ chế cặp khóa công khai public key và khóa bí mật

Cơ chế hoạt động của mã hóa bất đối xứng rất độc đáo. Một người muốn nhận thông tin bảo mật sẽ tạo ra một cặp khóa. Khóa công khai được chia sẻ cho mọi người, còn khóa bí mật được giữ riêng. Khi ai đó muốn gửi thông tin cho người này, họ sẽ dùng khóa công khai của người nhận để mã hóa bản rõ. Sau khi mã hóa, bản mã chỉ có thể được giải mã bằng khóa bí mật tương ứng, mà chỉ người nhận mới sở hữu. Điều này đảm bảo rằng dù bản mã bị chặn trên đường truyền, kẻ tấn công cũng không thể đọc được nội dung. Do các phép toán phức tạp dựa trên lý thuyết số, các thuật toán như thuật toán RSA thường chậm hơn đáng kể so với mã hóa đối xứng, nên chúng thường được dùng để mã hóa lượng dữ liệu nhỏ, chẳng hạn như mã hóa khóa phiên của hệ đối xứng.

4.2. Khám phá thuật toán RSA Nền tảng cho an ninh mạng

Thuật toán RSA, được đặt tên theo ba nhà phát minh Rivest, Shamir, và Adleman (1977), là thuật toán mã hóa bất đối xứng phổ biến và có ảnh hưởng nhất. Độ an toàn của RSA dựa trên một bài toán toán học rất khó: phân tích một số nguyên cực lớn ra thừa số nguyên tố. Quá trình sinh khóa của RSA bao gồm việc chọn hai số nguyên tố lớn p và q, sau đó tính toán ra cặp khóa công khai (n, e) và khóa bí mật (n, d). Việc mã hóa và giải mã được thực hiện bằng các phép toán lũy thừa theo modulo n. Ví dụ, để mã hóa bản rõ m, ta tính c = m^e mod n. Để giải mã, ta tính m = c^d mod n. Do tốc độ tính toán ngày càng tăng, các khóa RSA có kích thước dưới 1024 bit không còn được coi là an toàn. Hiện nay, khuyến nghị sử dụng khóa có độ dài ít nhất 2048 bit để đảm bảo an ninh mạng.

4.3. Vai trò của Hạ tầng khóa công khai PKI và chứng chỉ số

Mặc dù khóa công khai có thể được phân phối tự do, một vấn đề nảy sinh: làm thế nào để xác minh rằng một khóa công khai thực sự thuộc về đúng chủ thể của nó? Đây là lúc Hạ tầng khóa công khai (PKI - Public Key Infrastructure) phát huy vai trò. PKI là một hệ thống bao gồm các chính sách, quy trình và công nghệ để quản lý các chứng chỉ số (digital certificate). Một chứng chỉ số là một tệp dữ liệu điện tử, được cấp bởi một tổ chức tin cậy gọi là Nhà cung cấp chứng thực (CA - Certificate Authority). Chứng chỉ này liên kết định danh của một chủ thể (ví dụ: tên miền website, địa chỉ email) với khóa công khai của họ. Toàn bộ chứng chỉ sau đó được ký bằng chữ ký số của CA để đảm bảo tính xác thực và toàn vẹn dữ liệu. PKI chính là xương sống của lòng tin trên Internet, tạo nền tảng cho các giao thức bảo mật như SSL/TLS.

V. Phương pháp đảm bảo toàn vẹn dữ liệu với hàm băm

Bên cạnh việc bảo vệ tính bí mật, việc đảm bảo thông tin không bị thay đổi trong quá trình truyền và lưu trữ cũng là một yêu cầu quan trọng của an toàn thông tin. Hàm băm (Hash function) là công cụ mật mã học chính được sử dụng để đảm bảo toàn vẹn dữ liệu. Đây là một hàm toán học một chiều, nhận đầu vào là dữ liệu có độ dài bất kỳ và tạo ra một chuỗi đầu ra có độ dài cố định, được gọi là giá trị băm (hash value) hay chuỗi đại diện (digest). Một thay đổi nhỏ nhất trong dữ liệu đầu vào cũng sẽ tạo ra một giá trị băm hoàn toàn khác biệt. Nhờ đặc tính này, hàm băm được ứng dụng rộng rãi trong việc kiểm tra tính toàn vẹn của tệp tin, lưu trữ mật khẩu và xây dựng chữ ký số.

5.1. Định nghĩa và các thuộc tính quan trọng của hàm băm

Một hàm băm (hash function) mật mã học phải có các thuộc tính quan trọng sau: Thứ nhất là tính một chiều (one-way), nghĩa là từ giá trị băm, việc tìm ra dữ liệu gốc là bất khả thi về mặt tính toán. Thứ hai là khả năng chống đụng độ yếu (weak collision resistance), tức là với một dữ liệu đầu vào cho trước, rất khó để tìm ra một dữ liệu khác có cùng giá trị băm. Thứ ba là khả năng chống đụng độ mạnh (strong collision resistance), nghĩa là rất khó để tìm ra bất kỳ hai dữ liệu đầu vào khác nhau nào mà lại tạo ra cùng một giá trị băm. Các thuộc tính này đảm bảo rằng mỗi thông điệp sẽ có một "dấu vân tay" số gần như duy nhất, giúp xác minh tính toàn vẹn dữ liệu một cách hiệu quả và đáng tin cậy.

5.2. So sánh hai thuật toán băm phổ biến MD5 và SHA 256

Hai trong số các họ hàm băm nổi tiếng nhất là MD (Message Digest) và SHA (Secure Hash Algorithm). MD5, được thiết kế vào năm 1991, tạo ra giá trị băm dài 128 bit. Nó đã từng được sử dụng rất rộng rãi để kiểm tra tính toàn vẹn của tệp. Tuy nhiên, theo thời gian, nhiều lỗ hổng nghiêm trọng đã được phát hiện, cho phép tạo ra các xung đột (collisions) một cách có chủ đích. Do đó, MD5 hiện không còn được coi là an toàn cho các ứng dụng mật mã học. Thay vào đó, họ hàm băm SHA được khuyến nghị sử dụng. SHA-1 (160-bit) cũng đang dần bị loại bỏ vì các điểm yếu lý thuyết. Chuẩn mực hiện tại là họ SHA-2, bao gồm SHA-256 (256-bit) và SHA-512 (512-bit). SHA-256 cung cấp mức độ bảo mật cao hơn nhiều và được sử dụng rộng rãi trong các công nghệ như blockchain và chữ ký số.

5.3. Ứng dụng của hàm băm trong chữ ký số và xác thực

Hàm băm là một thành phần không thể thiếu của chữ ký số (digital signature). Thay vì sử dụng thuật toán mã hóa bất đối xứng (vốn rất chậm) để ký toàn bộ một tài liệu lớn, người ta sẽ băm tài liệu đó để tạo ra một giá trị băm ngắn gọn. Sau đó, họ chỉ cần dùng khóa bí mật của mình để mã hóa giá trị băm này. Kết quả chính là chữ ký số. Bên nhận có thể dùng khóa công khai của người gửi để giải mã chữ ký, đồng thời tự mình băm lại tài liệu gốc. Nếu hai giá trị băm khớp nhau, điều đó chứng tỏ tài liệu không bị thay đổi (toàn vẹn) và chữ ký đúng là của người gửi (xác thực và chống chối bỏ). Ngoài ra, hàm băm còn được dùng để lưu trữ mật khẩu an toàn. Hệ thống không lưu mật khẩu dạng rõ mà lưu giá trị băm của nó. Khi người dùng đăng nhập, hệ thống sẽ băm mật khẩu họ nhập vào và so sánh với giá trị băm đã lưu.

VI. Tổng kết và định hướng tương lai của ngành Mật mã học

Mã hóa không chỉ là một lĩnh vực học thuật mà còn là trụ cột thiết yếu cho xã hội số. Từ mã hóa đối xứng tốc độ cao, mã hóa bất đối xứng linh hoạt đến hàm băm đảm bảo toàn vẹn, mỗi kỹ thuật đều đóng một vai trò riêng biệt và không thể thay thế trong việc xây dựng một môi trường mạng an toàn và đáng tin cậy. Khi công nghệ tiếp tục phát triển, các thách thức mới cũng xuất hiện, đòi hỏi ngành mật mã học phải không ngừng đổi mới để đi trước một bước so với các mối đe dọa. Việc hiểu rõ các nguyên tắc cơ bản và theo dõi các xu hướng tương lai là yêu cầu bắt buộc đối với bất kỳ chuyên gia an ninh mạng nào.

6.1. Xu hướng phát triển mới của lĩnh vực mật mã học hiện đại

Tương lai của mật mã học đang được định hình bởi hai xu hướng chính. Thứ nhất là Mật mã đường cong Elliptic (Elliptic Curve Cryptography - ECC), một dạng mã hóa khóa công khai cung cấp mức độ bảo mật tương đương thuật toán RSA nhưng với kích thước khóa nhỏ hơn đáng kể. Điều này làm cho ECC trở nên lý tưởng cho các thiết bị có tài nguyên hạn chế như điện thoại thông minh và thiết bị IoT. Xu hướng thứ hai, và cũng là thách thức lớn nhất, là sự trỗi dậy của máy tính lượng tử. Một máy tính lượng tử đủ mạnh có thể phá vỡ các hệ mã hóa khóa công khai phổ biến hiện nay (như RSA và ECC) một cách dễ dàng. Để đối phó, các nhà nghiên cứu trên toàn thế giới đang tích cực phát triển Mật mã hậu lượng tử (Post-Quantum Cryptography - PQC), các thuật toán được thiết kế để chống lại các cuộc tấn công mật mã từ cả máy tính cổ điển và máy tính lượng tử.

6.2. Tầm quan trọng của mã hóa trong bảo mật dữ liệu toàn cầu

Trong kỷ nguyên số, dữ liệu được ví như "dầu mỏ mới". Từ thông tin cá nhân, bí mật kinh doanh đến dữ liệu an ninh quốc gia, tất cả đều cần được bảo vệ một cách nghiêm ngặt. Mã hóa chính là công cụ nền tảng để thực hiện nhiệm vụ bảo mật dữ liệu đó. Nó đảm bảo các giao dịch tài chính trực tuyến được an toàn, các cuộc trò chuyện riêng tư không bị nghe lén, và tính toàn vẹn dữ liệu của các hệ thống quan trọng không bị xâm phạm. Thiếu đi một hệ thống mật mã học vững chắc, thế giới kỹ thuật số mà chúng ta đang sống sẽ không thể tồn tại. Do đó, việc đầu tư vào nghiên cứu, phát triển và triển khai các giải pháp mã hóa mạnh mẽ không chỉ là một lựa chọn kỹ thuật mà còn là một yêu cầu chiến lược để đảm bảo sự ổn định và phát triển của kinh tế - xã hội toàn cầu.

03/10/2025

Trích đoạn nội dung tài liệu

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG ----------------------------------- HOÀNG XUÂN DẬU GIÁO TRÌNH CƠ SỞ AN TOÀN THÔNG TIN HÀ NỘI 2018 Giáo trình Cơ sở an toàn thông tin Chương 4. Đảm bảo ATTT dựa trên mã hóa CHƯƠNG 4. ĐẢM BẢO AN TOÀN THÔNG TIN DỰA TRÊN MÃ HÓA Chương 4 giới thiệu các khái niệm cơ bản về mật mã, hệ mã hóa, các phương pháp mã hóa. Phần tiếp theo của chương trình bày một số giải thuật cơ bản của mã hóa khóa đối xứng (DES, 3-DES và AES), mã hóa khóa bất đối xứng (RSA) và các hàm băm (MD5 và SHA1).

KHÁI QUÁT VỀ MÃ HÓA THÔNG TIN VÀ ỨNG DỤNG 4. Các khái niệm cơ bản Mật mã Theo từ điển Webster's Revised Unabridged Dictionary16: “cryptography is the act or art of writing secret characters”, hay mật mã (cryptography) là một hành động hoặc nghệ thuật viết các ký tự bí mật. Còn theo từ điển Free Online Dictionary of Computing17: “cryptography is encoding data so that it can only be decoded by specific individuals”, có nghĩa là mật mã là việc mã hóa dữ liệu mà nó chỉ có thể được giải mã bởi một số người chỉ định. Bản rõ, Bản mã, Mã hóa và Giải mã Bản rõ (Plaintext), hay thông tin chưa mã hóa (Unencrypted information) là thông tin ở dạng có thể hiểu được.

Bản mã (Ciphertext), hay thông tin đã được mã hóa (Encrypted information) là thông tin ở dạng đã bị xáo trộn. Mã hóa (Encryption) là hành động xáo trộn (scrambling) bản rõ để chuyển thành bản mã. Giải mã (Decryption) là hành động giải xáo trộn (unscrambling) bản mã để chuyển thành bản rõ. Các khâu Mã hóa (Encryption) và Giải mã (Decryption) của một hệ mã hóa Hình 4.1 minh họa các khâu của một hệ mã hóa, trong đó khâu mã hóa thực hiện ở phía người gửi: chuyển bản rõ (plaintext) thành bản mã (ciphertext) sử dụng khoá mã hoá K1 và 16 Tham khảo tại: http://www.org/bin/Dict?Form=Dict3&Database=web1913 17 Tham khảo tại: http://foldoc.org/cryptography - 79 - Giáo trình Cơ sở an toàn thông tin Chương 4.

Đảm bảo ATTT dựa trên mã hóa khâu giải mã được thực hiện ở phía người nhận: chuyển bản mã thành bản rõ sử dụng khoá giải mã K2. Khoá mã hoá K1 và khoá giải mã K2 có quan hệ về mặt toán học với nhau. Giải thuật mã hóa & giải mã, Bộ mã hóa, Khóa/Chìa, Không gian khóa Giải thuật mã hóa (Encryption algorithm) là giải thuật dùng để mã hóa thông tin và giải thuật giải mã (Decryption algorithm) dùng để giải mã thông tin. Một bộ mã hóa (Cipher) gồm một giải thuật để mã hóa và một giải thuật để giải mã thông tin.

Khóa, hay Chìa (Key) là một chuỗi dữ liệu được sử dụng trong giải thuật mã hóa và giải mã. Không gian khóa (Keyspace) là tổng số khóa có thể có của một hệ mã hóa. Ví dụ, nếu sử dụng khóa kích thước 64 bit thì không gian khóa là 264. Mã hóa khóa đối xứng, Mã hóa khóa bất đối xứng, Hàm băm, Thám mã Mã hóa khóa đối xứng (Symmetric key cryptography) là dạng mã hóa trong đó một khóa được sử dụng cho cả giải thuật mã hóa và giải mã.

Do khóa sử dụng chung cần phải được giữ bí mật nên mã hóa khóa đối xứng còn được gọi là mã hóa khóa bí mật (Secret key cryptography).2 minh họa hoạt động của một hệ mã hóa khóa đối xứng, trong đó một khóa bí mật duy nhất, hay khoá chia sẻ (Shared Secret Key) được sử dụng cho cả hai khâu mã hóa (Encrypt) ở bên người gửi (Sender) và giải mã (Decrypt) một thông điệp ở bên người nhận (Recipient/ Receiver). Mã hóa khóa đối xứng sử dụng 1 khóa bí mật chia sẻ để mã hoá và giải mã Mã hóa khóa bất đối xứng (Asymmetric key cryptography) là dạng mã hóa trong đó một cặp khóa được sử dụng: khóa công khai (public key) dùng để mã hóa, khóa riêng (private key) dùng để giải mã. Chỉ có khóa riêng cần phải giữ bí mật, còn khóa công khai có thể phổ biến rộng rãi. Do khóa để mã hóa có thể công khai nên đôi khi mã hóa khóa bất đối xứng còn được gọi là mã hóa khóa công khai (Public key cryptography).3 minh họa hoạt động của một hệ mã hóa khóa bất đối xứng, trong đó người gửi (Sender) sử dụng khóa công khai của - 80 - Giáo trình Cơ sở an toàn thông tin Chương 4.

Đảm bảo ATTT dựa trên mã hóa người nhận (Recipient’s public key) để mã hóa (Encrypt) thông điệp và người nhận (Recipient) sử dụng khóa riêng của mình (Recipient’s private key) để giải mã thông điệp. Mã hóa khóa bất đối xứng sử dụng một cặp khóa để mã hoá và giải mã Hàm băm (Hash function) là một ánh xạ chuyển các dữ liệu có kích thước thay đổi về dữ liệu có kích thước cố định.4 minh họa đầu vào (Input) và đầu ra (Digest) của hàm băm. Trong các loại hàm băm, hàm băm 1 chiều (One-way hash function) là hàm băm, trong đó việc thực hiện mã hóa tương đối đơn giản, còn việc giải mã thường có độ phức tạp rất lớn, hoặc không khả thi về mặt tính toán. Minh họa đầu vào (Input) và đầu ra (Digest) của hàm băm Thám mã hay phá mã (Cryptanalysis) là quá trình giải mã thông điệp đã bị mã hóa mà không cần có trước thông tin về giải thuật mã hóa và khóa mã.

- 81 - Giáo trình Cơ sở an toàn thông tin Chương 4. Đảm bảo ATTT dựa trên mã hóa 4. Các thành phần của một hệ mã hóa Hình 4. Các thành phần của một hệ mã hóa đơn giản Một hệ mã hóa hay hệ mật mã (Cryptosystem) là một bản cài đặt của các kỹ thuật mật mã và các thành phần có liên quan để cung cấp dịch vụ bảo mật thông tin.5 mô tả các thành phần của một hệ mã hóa đơn giản dùng để đảm bảo tính bí mật của thông tin từ người gửi (Sender) truyền đến người nhận (Receiver) mà không bị một bên thứ ba (Interceptor) nghe lén.

Các thành phần của một hệ mã hóa đơn giản gồm bản rõ (plaintext), giải thuật mã hóa (Encryption Algorithm), bản mã (ciphertext), giải thuật giải mã (Decryption Algorithm), khóa mã hóa (encryption key) và khóa giải mã (decryption key). Một thành phần quan trọng khác của một hệ mã hóa là không gian khóa (Keyspace). Không gian khoá là tập hợp tất cả các khóa có thể có. Ví dụ, nếu chọn kích thước khóa là 64 bit thì không gian khóa sẽ là 264.

Nhìn chung, hệ mã hóa có độ an toàn càng cao nếu không gian khóa lựa chọn càng lớn. Mã hóa dòng và mã hóa khối 4. Mã hóa dòng (Stream cipher) Mã hóa dòng (Stream cipher) là kiểu mã hóa mà từng bit, hoặc ký tự của bản rõ được kết hợp với từng bit, hoặc ký tự tương ứng của khóa để tạo thành bản mã.6 biểu diễn quá trình mã hóa (Encrypt) và giải mã (Decrypt) trong mã hóa dòng. Theo đó, ở bên gửi các bit Pi - 82 - Giáo trình Cơ sở an toàn thông tin Chương 4.

Đảm bảo ATTT dựa trên mã hóa của bản rõ (plaintext) được liên tục đưa vào kết hợp với bit tương ứng Ki của khóa để tạo thành bit mã Ci; Ở bên nhận, bit mã Ci được kết hợp với bit khóa Ci để khôi phục bit rõ Pi. Một bộ sinh dòng khóa (Keystream Generator) được sử dụng để liên tục sinh các bit khóa Ki từ khóa gốc K. Các giải thuật mã hóa dòng tiêu biểu như A5, hoặc RC4 được sử dụng rộng rãi trong viễn thông. Mã hóa khối (Block cipher) Mã hóa khối (Block cipher) là kiểu mã hóa mà dữ liệu được chia ra thành từng khối có kích thước cố định để mã hóa và giải mã.7 biểu diễn quá trình mã hóa và giải mã trong mã hóa khối.

Theo đó, ở bên gửi bản rõ (Plaintext) được chia thành các khối (block) có kích thước cố định, sau đó từng khối được mã hóa để chuyển thành khối mã. Các khối mã được ghép lại thành bản mã (Ciphertext). Ở bên nhận, bản mã lại được chia thành các khối và từng lại được giải mã để chuyển thành khối rõ. Cuối cùng ghép các khối rõ để có bản rõ hoàn chỉnh.

Các giải thuật mã hóa khối tiêu biểu như DES, 3-DES, IDEA, AES được sử dụng rất rộng rãi trong mã hóa dữ liệu với kích thước khối 64, hoặc 128 bit. Sơ lược lịch sử mật mã Có thể nói mật mã là con đẻ của toán học nên sự phát triển của mật mã đi liền với sự phát triển của toán học. Tuy nhiên, do nhiều giải thuật mật mã đòi hỏi khối lượng tính toán lớn nên mật mã chỉ thực sự phát triển mạnh cùng với sự ra đời và phát triển của máy tính điện tử. Sau đây là một số mốc trong sự phát triển của mật mã và ứng dụng mật mã: - Các kỹ thuật mã hoá thô sơ đã được người cổ Ai cập sử dụng cách đây 4000 năm.

- Người cổ Hy lạp, Ấn độ cũng đã sử dụng mã hoá cách đây hàng ngàn năm. - Các kỹ thuật mã hoá chỉ thực sự phát triển mạnh từ thế kỷ 1800 nhờ công cụ toán học, và phát triển vượt bậc trong thế kỷ 20 nhờ sự phát triển của máy tính và ngành công nghệ thông tin. - Trong chiến tranh thế giới thứ I và II, các kỹ thuật mã hóa được sử dụng rộng rãi trong liên lạc quân sự sử dụng sóng vô tuyến. Quân đội các nước đã sử dụng các công cụ phá mã, thám mã để giải mã các thông điệp của quân địch.

- Năm 1976 chuẩn mã hóa DES (Data Encryption Standard) được Cơ quan mật vụ Hoa Kỳ (NSA – National Security Agency) thừa nhận và sử dụng rộng rãi. - 83 - Giáo trình Cơ sở an toàn thông tin Chương 4. Đảm bảo ATTT dựa trên mã hóa - Năm 1976, hai nhà khoa học Whitman Diffie và Martin Hellman đã đưa ra khái niệm mã hóa khóa bất đối xứng (Asymmetric key cryptography), hay mã hóa khóa công khai (Public key cryptography). Điều này đã đem đến những thay đổi lớn trong kỹ thuật mật mã.

Theo đó, các hệ mã hóa khóa công khai bắt đầu được sử dụng rộng rãi nhờ khả năng hỗ trợ trao đổi khóa dễ dàng hơn trong khi các hệ mã hóa khóa bí mật gặp khó khăn trong quản lý và trao đổi khóa, đặc biệt khi số lượng người dùng lớn. - Năm 1977, ba nhà khoa học Ronald Rivest, Adi Shamir, và Leonard Adleman giới thiệu giải thuật mã hóa khóa công khai RSA. Từ đó, RSA trở thành giải thuật mã hóa khóa công khai được sử dụng rộng rãi nhất do RSA có thể vừa được sử dụng để mã hóa thông tin và sử dụng trong chữ ký số. - Năm 1991, phiên bản đầu tiên của chuẩn PGP (Pretty Good Privacy) ra đời.

- Năm 2001, chuẩn mã hóa AES (Advanced Encryption Standard) được thừa nhận và ứng dụng rộng rãi.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ