Lý thuyết mật mã và an toàn thông tin

NGUYỄN QUANG HUY (Trường Đại học An Giang, Đại học Quốc gia TP. Hồ Chí Minh)

TÓM TẮT:

Thông tin có vai trò và giá trị ngày càng to lớn. Công nghệ thông tin xâm nhập vào hầu hết các hoạt động trong xã hội. Song song với việc xây dựng nền tảng về công nghệ thông tin, cũng như phát triển các ứng dụng máy tính trong sản xuất, kinh doanh, khoa học, giáo dục, xã hội,... thì việc bảo vệ những thành quả đó là một điều không thể thiếu. Trong khi công nghệ mạng và Internet mang lại nhiều cơ hội phát triển và cạnh tranh mới cho các tổ chức thì cũng là lúc nó làm dấy lên nhu cầu cần phải bảo vệ hệ thống máy tính trước các đe dọa về bảo mật. Tuy nhiên, để thực sự thấy rõ yêu cầu cấp bách của mã hóa trong thời đại ngày nay, cần nhấn mạnh rằng với các phương tiện kỹ thuật hiện đại việc giữ bí mật ngày càng trở nên hết sức khó khăn. Vì thế, phương pháp thông dụng nhất để giữ gìn bí mật thông tin là mã hóa chúng bằng một hệ mã nào đó trước khi truyền đi. Trước các yêu cầu cấp thiết đó, giải thuật mã khóa công khai RSA đã được xây dựng nhằm đảm bảo tính an toàn dữ liệu tại nơi lưu trữ cũng như khi dữ liệu được truyền trên mạng.

Từ khóa: Lý thuyết mật mã, an toàn thông tin.

1. Giới thiệu

Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin việc ứng dụng các công nghệ mạng máy tính trở nên vô cùng phổ cập và cần thiết. Công nghệ mạng máy tính đã mang lại những lợi ích to lớn cho quá trình trao đổi thông tin giữa các nhóm người dùng. Bảo mật an toàn dữ liệu là vấn đề thời sự, là một chủ đề rộng có liên quan đến nhiều lĩnh vực và trong thực tế có nhiều phương pháp được thực hiện để bảo vệ an toàn dữ liệu. Ngày nay với sự phát triển nhanh chóng của công nghệ thông tin thì các nguy cơ xâm nhập vào các hệ thống thông tin, mạng dữ liệu ngày càng gia tăng.

Trong mật mã vấn đề bảo mật thông tin luôn đi đôi với vấn đề xác thực thông tin, đặc biệt trong hệ thống mã khóa công khai vấn đề xác thực là vô cùng quan trọng. Để giải quyết việc xác thực, người ta đưa ra một cách vừa đơn giản vừa hiệu quả là sử dụng chữ ký số. Việc sử dụng chữ ký số ngày càng có nhiều ứng dụng trong thực tế, không chỉ giới hạn trong ngành Công nghệ thông tin, ngành Mật mã mà còn được áp dụng trong một số lĩnh vực khác như ngân hàng để xác thực người gửi và người nhận, cùng bưu chính viễn thông để sử dụng các thẻ thông minh.

2. Hệ thống chung về mật mã

Mục đích của mã hóa thông tin là cho phép hai người A và B có thể giao tiếp an toàn qua các kênh thông tin không được bảo mật sao cho người thứ ba là C không biết thông tin gì đang thực sự được trao đổi. Thông tin ban đầu được gọi là bản rõ (Plain Text). Để trao đổi, A thực hiện việc mã hóa bằng khóa mã định trước bản rõ trên và thu được bản mã (Cipher Text) rồi gửi cho B qua kênh thông tin. B với khóa giải mã, có thể giải được bản mã và hiểu bản rõ. C có thể thu được bản mã gửi đi nhưng không biết được nội dung A muốn gửi hoặc đôi khi biết được thì mất khá nhiều thời gian và thông tin đó không còn giá trị nữa.

2.1. Ứng dụng của mật mã khóa công khai

Có ba ứng dụng cơ bản sau:

+ Mã hóa/giải mã: người gửi mã hóa đoạn tin bằng khóa công khai của người nhận, người nhận giải mã bằng khóa bí mật của mình.

+ Chữ ký số: người gửi mã hóa đoạn tin (kCEý tên) bằng khóa bí mật của mình, người nhận giải mã bằng khóa công khai của người gửi.

+ Chuyển đổi khoá: người gửi mã hoá đoạn tin 2 lần, lần 1 sử dụng khoá bí mật của bản thân, lần hai sử dụng khóa công khai của người nhận. Người nhận giải mã đoạn tin nhận được bằng khóa bí mật của bản thân và khoá công khai của người gửi.

2.2. Các yêu cầu của mật mã khoá công khai

- Công việc tính toán thì dễ dàng cho người nhận B → tạo cặp khóa: khóa công khai KU và khóa bí mật KR.

- Công việc tính toán thì dễ dàng cho người gửi A → biết khóa công khai và đoạn tin cần mã hóa M, để tạo bản mã tương ứng: C=EKUb(M).

- Công việc tính toán thì dễ dàng cho người nhận B → sử dụng khóa bí mật để giải mã đoạn tin mã hóa C, khôi phục lại đoạn tin ban đầu:

M=DKRb(C)= DKRb[EKUb(M)]

- Công việc tính toán không dễ thấy trước đối với địch thủ biết khóa công khai KUb, để xác định khóa bí mật KRb.

- Công việc tính toán không dễ thấy trước đối với địch thủ biết khóa công khai KUb và một bản mã C, để tìm ra bản rõ ban đầu.

- Chức năng mã hóa và giải mã có thể được áp dụng theo thứ tự sau:

M = DKRb[EKUb(M)]

M = EKUb[DKRb(M)]

2.3. Hệ mật mã khóa công khai RSA

Mật mã RSA được viết tắt bởi tên của 3 nhà Toán học (Rivest, Shamir, Adleman). Trong phương pháp mật mã RSA, việc mã hóa và giải mã sử dụng hàm lũy thừa với modul không nguyên tố.

2.3.1. Mô tả giải thuật RSA

Tạo khóa

Mỗi đầu cần tạo một khóa công khai và một khóa riêng tương ứng theo các bước sau:

(1) Tạo 2 số nguyên tố lớn ngẫu nhiên và khác nhau p và q, p và q có độ lớn xấp xỉ nhau.

(2) Tính n = p.q và Φ(n)= (p-1).(q-1).

(3) Chọn một số ngẫu nhiên e, 1<e < Φ(n), sao cho (e, Φ(n)) = 1.

(4) Sử dụng thuật toán Euclidean mở rộng để tính một số nguyên duy nhất 1<d< Φ(n) thỏa mãn e.d ≡ 1 (mod Φ(n)) (d là nghịch đảo của e đối với Φ(n)).

(5) Khóa công khai là cặp số (n, e). Khóa bí mật là d

Các số nguyên e và d ở trên được gọi là số mũ mã hóa và số mũ giải mã.

Mã hóa

A mã hóa một thông báo m để gửi cho B bản mã cần giải. A phải thực hiện:

(1) Thu nhận khóa công khai (n, e) của B.

(2) Biểu diễn bản tin dưới dạng một số nguyên m trong dải [0, n -1]

(3) Tính c = me mod n.

(4) Gửi bản mã c cho B.

Giải mã

Khôi phục bản rõ m từ c. B phải thực hiện phép tính m = cd  mod n bằng cách dùng khóa riêng.

2.3.2. Độ an toàn của RSA

Vì khóa là công khai, nên người giải mã thường dựa vào cặp khóa này để tìm cặp khóa bí mật. Điều quan trọng là dựa vào n để tính hai thừa số p, q của n từ đó tính được d.

Có một vài điều cần lưu ý khi chọn các số p và q để tránh rơi vào trường hợp tích của pq bị phân tích nhanh nhờ những thuật toán đặc biệt: p và q cần chọn sao cho p - 1 và q - 1 không chỉ có toàn các ước nguyên tố nhỏ. Ngoài ra, ước chung lớn nhất (p - 1, q - 1) phải là số nhỏ, p và q phải có chữ số trong khai triển thập phân khác nhau không nhiều.

2.3.3. Sự che dấu thông tin trong hệ thống RSA

Hệ thống RSA có một đặc điểm đặc trưng là thông tin không phải luôn luôn được che dấu. Giả sử người gửi có e=17, n = 35. Nếu anh ta muốn gửi bất cứ data nào thuộc tập sau:

{1,  6,  7,  8,  13,  14, 15,  20,  21,  22,  27, 28, 29, 34}

thì mọi mật mã cũng chính là data ban đầu.

Để xác định chính xác số message không được che dấu (không bị thay đổi sau khi mã hóa) ta sử dụng định lý sau:

"Nếu các message được mã hóa trong hệ thống RSA được xác định bởi số modul n = pq (p, q là số nguyên tố) và khóa công khai e thì có:

m = [ 1 + UCLN(e-1, p-1)][1 + UCLN(e-1, q-1)]

message không bị che dấu".

2.3.4. Một số lưu ý khi sử dụng hệ mật mã RSA

RSA đã phải đương đầu với các kiểu tấn công đủ loại của giới thám mã chuyên nghiệp. Kết quả hơn 20 năm "công phá" hệ mã RSA của các nhà thám mã đã được tóm lược trong bài báo của Dan Boneh với tựa đề "Hai mươi năm tấn công hệ mã RSA" (đăng trong tờ Notices of the AMS, tháng 2, năm 1999), trong đó cho thấy rõ RSA có thể bị "bẻ"  khi người ta không biết dùng nó một cách "bài bản". Khi chìa khóa lập mã (hoặc giải mã) là những số nguyên tố nhỏ thì người ta có những giải pháp bẻ RSA một cách không mấy khó khăn. Thêm vào đó, không phải mọi hợp số lớn đều khó phân tích (kể cả khi nó là tích của 2 số nguyên tố rất lớn), cho nên việc chọn các số nguyên tố p, q phải rất thận trọng.

3. An toàn thông tin

Bảo vệ an toàn thông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu. Các phương pháp bảo vệ an toàn thông tin dữ liệu đó có thể quy tụ vào ba nhóm sau đây:

- Bảo vệ an toàn thông tin dữ liệu bằng các biện pháp hành chính.

- Bảo vệ an toàn thông tin dữ liệu bằng các biện pháp kỹ thuật (cứng).

- Bảo vệ an toàn thông tin dữ liệu bằng các biện pháp thuật toán (mềm).

Ba nhóm biện pháp trên có thể ứng dụng riêng rẽ hoặc phối kết hợp.

3.1. Chữ ký điện tử

3.1.1. Giới thiệu chung

Chữ ký điện tử (hay còn gọi là sơ đồ chữ ký số) là phương pháp ký một bức điện lưu dưới dạng điện tử.

Một sơ đồ chữ ký số thường chứa 2 thành phần: Thuật toán ký và thuật toán xác minh.

3.1.2. Định nghĩa hình thức về chữ ký điện tử

Một sơ đồ chữ ký điện tử là bộ năm (P, A, K, S, V) thỏa mãn các điều kiện sau:

  1. P: là tập hợp hữu hạn các bức điện có thể.
  2. A: là tập hợp hữu hạn các chữ ký có thể.
  3. K: không gian các khóa là tập hữu hạn các khóa có thể.
  4. Với mỗi k ϵ K tồn tại một thuật toán ký

Sigk ϵ S và một thuật toán xác minh Verk ϵ V.

Mỗi Sigk: P → A và Verk: P x A → {TRUE, FALSE} là những hàm sao cho mỗi bức điện x ϵ P và mỗi chữ ký y ϵ A thỏa mãn phương trình sau đây:

CT1

3.1.3. Sơ đồ chữ ký RSA

Có thể coi bài toán xác thực là bài toán "đối ngẫu" với bài toán bảo mật. Vì vậy, sử dụng ngược thuật toán RSA, ta có thể có được một sơ đồ chữ ký số RSA như sau:

Giả sử n = pq, trong đó, p và q là các số nguyên tố có kích thước tương đương.

K = {(n, e, d): d ϵ Z*n, ed ≡ 1 mod n}.

Với K = (n, e, d) ta có D = d là khóa bí mật,

E = (n, e) là khóa công khai, m là bản tin cần ký.

Tạo chữ ký:

            S = SigD(m) = md mod n.

Kiểm tra chữ ký: VerE (m, S) = TRUE ↔ m = Se mod n.

3.2. Một số mô hình xác thực hóa

3.2.1. Giới thiệu chung

Ở phần này tập trung vào tìm hiểu các phương pháp xác thực. Nhu cầu cho việc xác thực nảy sinh ở nhiều trường hợp khác nhau, nhưng nó đặc biệt quan trọng khi một người sử dụng vận hành một thiết bị đầu cuối từ xa.

Chúng ta có thể phân biệt 2 trường hợp xác thực:

- Tính xác thực của nội dung thông tin.

- Tính xác thực của người gửi và người nhận.

Thực tế, việc xác thực gián tiếp người gửi và người nhận là tương đương với việc xác thực nội dung thông tin. Việc xác thực nội dung thông tin phụ thuộc vào cấu trúc sắp đặt trước cho thông tin.

3.2.2. Một số mô hình xác thực hóa chữ ký điện tử

Sơ đồ xác thực hóa RSA có thể mô tả như sau:

+ Các bước người gửi A thực hiện:

- Chọn hai số nguyên tố pA và qA.

- Tính NA = pA * qA.

- Tính γ (NA)= BCNN(pA -1, qA -1).

- Chọn tiếp cặp khóa (kA, KA), sao cho kA x KA = 1 mod(γ (NA)).  Tức là kA là nghịch đảo của KA trong mod (γ (NA)).

- Công khai KA và NA, còn kA được giữ bí mật.

- Mã hóa M được C theo công thức C = DA(M) = MkA(mod NA).

- Gửi C đến người nhận.

+ Các bước người nhận thực hiện.

- Biết được KA và NA, do người gửi đã công khai.

- Nhận được C từ người gửi.

- Giải mã C được M theo công thức M = EA(C) = CkA(mod NA)

Tuy nhiên đối với các giao dịch mang tính nhạy cảm, cần phải có cơ chế đảm bảo an toàn trong phiên giao dịch đó. Cần thiết hơn cả đó là mỗi bên cần xác định chính xác người mình đang giao tiếp có đúng là đối tác mong đợi hay không. Hai kỹ thuật: mã hóa và ký số được áp dụng phần nào trong việc xác thực đối tác trong mỗi phiên giao dịch.

Với công nghệ máy tính như hiện nay, thì việc tấn công bất hợp pháp của những đối thủ đều có khả năng làm được, nhưng đòi hỏi phải có thời gian. Do vậy, các kỹ thuật mã hóa, xác thực hóa được dựa vào điểm này để xây dựng, nên cho dù đối thủ giải ra được thì thông tin đó có thể không còn giá trị nữa.

TÀI LIỆU THAM KHẢO:

  1. Douglas R. Stinson (1995). "Cryptography_ Theory and Practice". USA: CRC Press.
  2. Man Toung Rhee, Hanyang University (1994). "Cryptography and Secure Communications". USA: McGraw - Hill Book Co.
  3. Ph.D William Stallings (1995). "Network and Internetwork Security Principles and Practice". USA: Prentice Hall.
  4. Phạm Huy Điển - Hà Huy Khoái (2004). "Mã hóa thông tin - Cơ sở toán học và ứng dụng". Viện Toán học Việt Nam, Hà Nội.
  5. Hà Huy Khoái (1997). "Nhập môn số học và thuật toán". Nhà xuất bản Khoa học.
  6. Thái Hồng Nhị - Phạm Minh Việt (2004). "An toàn thông tin - Mạng máy tính, truyền tin số và truyền dữ liệu". Nhà Xuất bản Khoa học và kỹ thuật.
  7. Nguyễn Bình (2004). Giáo trình Mật mã học. Nhà Xuất bản Bưu điện.
  8. Trịnh Nhật Tiến (2006). "Giáo trình An toàn dữ liệu và mã hóa". Đại học Công nghệ Hà Nội.

THEORY OF CRYPTOGRAPHIC AND INFORMATION SECURITY

• Master. NGUYEN QUANG HUY

An Giang University,

Vietnam National University - Ho Chi Minh City City

ABSTRACT:

Information plays an increasingly important role and information technology (IT) is used widely in every field of the world today. Besides the establishment of IT foundation and the development of IT applications, it is important to protect achievements of IT development. The development of Internet and types of network brings new development opportunities to organizations, it also raises the need for protecting computer systems against computer security threats. The most common method of protecting information confidential is to encode before transmitting information. RSA public encryption have been developed to ensure the data security.

Keywords: Cryptographic theory, information security.

[Tạp chí Công Thương - Các kết quả nghiên cứu khoa học và ứng dụng công nghệ, Số 28, tháng 11 năm 2020]