CHƯƠNG 1: KHÁI QUÁT VỀ AN TOÀN THÔNG TIN VÀ BÀI TOÁN THỎA THUẬN KHÓA
1.2 Bài toán thoả thuận khoá
1.2.4. Vai trò của khóa trong an toàn thông tin
Theo tài liệu của GS. Hà Huy Khoái và Phạm Huy Điển [4], mật mã hay các giải pháp bảo mật được sử dụng để bảo vệ tính bí mật của thông tin khi chúng được truyền trên các kênh truyền thông công cộng. Giả sử nếu một người U muốn gửi cho người V một văn bản p, để bảo mật U lập cho p một bản mật mã c bằng một phương pháp Toán học nào đó, và thay vì gửi cho V văn bản p, U gửi choV văn bản c. V nhận được c thực hiện giải mã để thu được p. Để U biến p thành c và V biến c thành p, U và V phải thống nhất sử dụng chung một hệ mã khóa nào đó: hệ mã khóa đối xứng hoặc hệ mã khóa công khai.
1.2.4.1. Vai trò trong hệ mã khóa đối xứng
Hoạt động của hệ mã này được mô tả như sau: Nếu U và V là hai người dùng sử dụng hệ mã khóa đối xứng (Đôi khi nó còn được gọi là hệ mã khóa bí mật) để gửi tin cho nhau. U dùng thuật toán E và khóa K lập mật mã (Từ đây trở đi ta sẽ gọi tắt là mã hóa) cho văn bản M muốn gửi cho V, rồi gửi cho V bản mã: c = EK(M). Thuật toán mã hóa E sinh ra các output khác nhau phụ thuộc vào giá trị khóa K. Ở đầu bên kia V sau khi nhận được bản mã c, sẽ sử dụng thuật toán giải mã D và chính khóa K để thu được bản rõ M (Việc giải bản mã thành bản rõ từ nay sẽ được gọi là giải mã).
Hệ mã loại này có tên là hệ mã khóa đối xứng vì khóa lập mã và khóa giải mã là một, U và V chỉ có thể truyền tin được với nhau nếu cả hai cùng biết khóa K. Tính an toàn của hệ mã phụ thuộc vào hai yếu tố: thuật toán phải
đủ mạnh để không thể giải mã được văn bản nếu đơn thuần chỉ dựa vào bản rõ, và tính an toàn khóa, chứ không phải là an toàn thuật toán, tức là nếu biết bản mã và thuật toán mã hóa nhưng không biết khóa vẫn không thể tìm được bản rõ. Nói cách khác, ta không cần giữ bí mật thuật toán mà chỉ cần giữ bí mật chìa khóa. Việc giữ bí mật chìa khóa trở thành điểm mấu chốt của hệ mã khóa loại này, nếu vì lý do nào đó mà khóa bị lộ thì tất cả những văn bản hai bên trao đổi với nhau cũng sẽ bị lộ.
1.2.4.2. Vai trò trong hệ mã khóa công khai
Để sử dụng hệ mã khóa đối xứng yêu cầu hai bên trước khi truyền tin phải có chung một giá trị khóa, giá trị này cần phải giữ bí mật và điều này không thuận tiện trong môi trường truyền thông công cộng như hiện nay. Vì thế người ta đã đưa ra cách mã hóa khác, cho phép các bên trong hệ thống có thể truyền tin cho nhau bằng cách công bố công khai thông tin cần cho việc lập mã, khiến cho người gửi và người nhận không cần quy ước trước với nhau, và cũng không có những bí mật chung.
Bên nhận được bản mã sử dụng khóa bí mật của mình giải mã để thu được văn bản gốc. Khóa K của mỗi người dùng gồm hai phần K = (K',K") trong đó K' là phần công khai, còn giữ bí mật K".
Mã hóa được thực hiện rất dễ dàng, bất kỳ người nào cũng có thể làm được, còn việc giải mã rất khó khăn nếu như không có khóa riêng, còn nếu có nó thì việc giải mã cũng dễ như việc mã hóa. Việc giữ bí mật khóa trong hệ mã khóa công khai không còn là vấn đề nữa, vì mỗi người có một khóa riêng chỉ có chính anh ta biết mà thôi nên khả năng anh ta làm lộ gần như là không có. Vì vậy đối với những hệ mã loại này tính an toàn chúng nằm trong khả năng không bị lộ của chìa khóa bí mật từ những thông tin công khai tất cả mọi người đều có, mà điều này thì lại phụ thuộc vào độ khó của bài toán nào đó ví như: việc tính tích hai số nguyên tố lớn n = p.q: dễ dàng nhân hai số nguyên
tố lớn p, q để thu được tích n của chúng, nhưng bài toán sẽ là khó nếu cho giá trị tích n, xác định các nhân tử nguyên tố p, q của nó.
Hay như bài toán nếu có số nguyên tố p, một phần tử nguyên thủy α theo mod p, ta dễ dàng tính được β = αx mod p ∈ Z*p, với x là giá trị bất kỳ Nhưng nếu ngược lại biết β, α, p khó tìm được số nguyên x (0 ≤ x ≤ p 2) sao cho αx = β(mod p). Tuy nhiên, đến nay chưa có chứng minh bằng Toán học nào chỉ ra rằng đây thực sự là các bài toán khó, hoặc không thể giải trong thời gian chấp nhận được.
1.2.4.3. Vai trò trong sơ đồ xưng danh và xác nhận danh tính
Xưng danh và xác nhận danh tính là thuật ngữ ngày nay đang được nhắc đến rất nhiều, nó đảm bảo rằng bên nhận văn bản đúng là bên ta định nhằm tới, hay chắc chắn rằng các thao tác trên văn bản là do bên được phép thực hiện. Cho đến giữa những năm 1970 người ta vẫn còn cho rằng xưng danh và xác nhận danh tính với mã hóa thực chất là cùng một mục tiêu an toàn thông tin. Nhưng cùng với sự khám phá ra hàm băm, chữ ký điện tử, người ta nhận ra rằng đó là hai mục tiêu an toàn thông tin hoàn toàn độc lập.
Xưng danh và xác nhận danh tính rất cần thiết trong các hoạt động thông tin, đặc biệt là khi các hoạt động này thông qua mạng.
Mục tiêu an toàn của việc xưng danh là bảo đảm sao cho khi “nghe”
một chủ thể U nào đó xưng danh với chủ thể V, bất kỳ ai khác U cũng không thể sau đó mạo nhận mình là U, kể cả chính V. Nói cách khác, U muốn chứng minh để bên kia V xác nhận danh tính của mình mà không để lộ bất kỳ thông tin gì về mình.
Việc xưng danh thường phải thông qua một giao thức hỏi - đáp nào đó, nhờ đó V có thể xác nhận danh tính của U, V hỏi U, U trả lời để chứng tỏ cho V biết là U có sở hữu một bí mật riêng nào đó. Vấn đề an toàn của sơ đồ xưng danh là phải đảm bảo để sau khi U xưng danh với V, thì bất kỳ người nào khác
không thể mạo nhận mình là U kể cả V. Nói cách khác, U không để lộ một thông tin gì về bí mật mà U có ngoài thông tin duy nhất là U sở hữu bí mật đó.
Sự an toàn của sơ đồ xưng danh cũng nằm trong tính khó giải của các bài toán nào đó, hay dựa trên hàm một chiều nào đó.
1.2.4.4. Vai trò trong hệ xác nhận và chữ ký điện tử
Như ta đã nói ở trên bài toán bảo mật được đáp ứng bằng các giải pháp mật mã. Tuy nhiên giờ đây người nhận còn muốn kiểm thử tính xác thực nguồn gốc của thông tin, cũng như chắc chắn là thông tin đã không bị thay đổi trong quá trình truyền đi,và nhất là cần ràng buộc danh tính của bên đã gửi thông tin đi để sau đó anh ta không thể thoái thác là mình không gửi văn bản đó. Những yêu cầu này được đáp ứng bằng cách sử dụng chữ ký điện tử.
Chữ ký điện tử có cùng mục đích như chữ ký viết tay, tuy nhiên nếu chữ ký viết tay dễ dàng giả mạo được thì chữ ký điện tử lại rất khó giả mạo, cộng thêm nó chứng nhận nội dung của thông tin cũng như là danh tính của người gửi.
Sơ đồ chữ ký điện tử cơ bản được mô tả như dưới đây:
1. Người gửi (Chủ nhân của văn bản) tạo chữ ký trên văn bản bằng khóa riêng của mình;
2. Người gửi chuyển văn bản cùng chữ “ký” cho người nhận;
3. Người nhận văn bản sử dụng chìa khóa công khai của người gửi kiểm thử chữ ký trên văn bản nhận được.
Chữ ký không thể làm giả được vì chỉ có duy nhất người gửi có khóa bí mật để ký, và cũng không ai giả mạo được vì không có khóa bí mật. Văn bản đã ký không thể thay đổi nội dung được nữa. Người đã ký thì không thể thoái thác “chữ ký” của mình.
Bài toán xác nhận với chữ ký điện tử, theo nghĩa nào đó, có thể xem là
“đối ngẫu” với bài toán mã hóa bằng hệ mã công khai. Và vì thế nên sự an toàn của các sơ đồ ký cũng giống như thuật toán mã khóa công khai phụ thuộc vào độ khó của bài toán nào đó.