nhớ lôgarit trên máy Turing không đơn định. Theo chứng minh của định lý Savitch, NL là tập hợp con của , lớp các bài toán giải được trong thời gian đa P
thức. Vì vậy L⊆NL ⊆P. Cũng có thể chứng minh trực tiếp L là tập hợp con của như sau: một máy Turing dùng bộ nhớ (log ) không thể chạy trong thờiP O n
gian lâu hơn 2O(log n) = nO(1) mà không lặp vô hạn vì đây là số lượng tối đa các trạng thái của máy.
Trong lý thuyết độ phức tạp tính toán, PSPACE là tập hợp các bài toán quyết định giải được bằng máy Turing trong không gian/bộ nhớ đa thức.
B. MẬT MÃ VÀ ỨNG DỤNG
*Mật mã học:Mật mã học là một lĩnh vực liên ngành có tính ứng dụng cao. Nền tảng của mật mã học là sự kết hợp kỹ thuật ngôn ngữ và toán học nhằm mang lại lợi ích bảo mật cao. Cách thức hoạt động của mật mã học là chuyển đổi thông tin từ dạng con người có thể nhận thức được thành dạng không thể nhận thức được.
*Khóa mật mã:Khóa mật mã là một chuỗi các bit được mã hóa bởi thuật toán để chuyển văn bản thuần thành văn bản mã hóa và ngược lại. Kích thước
khóa quyết định bởi độ dài của bit, độ dài của bit quyết định đến độ bảo mật của
khóa. Khóa mật mã là phần cốt lõi của các hoạt động mã hóa.
I.Mật mã khóa đối xứng 1.Khái niệm
-Mật mã khóa đối xứng là gì (hay mã hóa đối xứng) là một loại sơ đồ mã hóa trong đó một khóa giống nhau sẽ vừa được dùng để mã hóa, vừa được dùng để giải mã các tệp tin. Phương pháp mã hóa thông tin này đã được sử dụng khá phổ biến từ nhiều thập kỷ với mục đích tạo ra cách thức liên lạc bí mật giữa chính phủ với quân đội. Ngày nay, các thuật toán khóa đối xứng được ứng dụng rộng
rãi trên nhiều hệ thống máy tính khác nhau nhằm tăng cường bảo mật cho dữ liệu.
-Hệ mật sẽ bao gồm:
Bản rõ (plaintext-M): bản tin được sinh ra bởi bên gửi
Bản mật (ciphertext-C): bản tin che giấu thông tin của bản rõ, được gửi tới bên nhận qua một kênh không bí mật
Khóa (Ks): nó là giá trị ngẫu nhiên và bí mật được chia sẻ giữa các bên trao đổi thông tin và được tạo ra từ:
o Bên thứ 3 được tin cậy tạo và phân phối tới bên gửi và bên nhận
o Hoặc, bên gửi tạo ra và chuyển cho bên nhận Mã hóa (encrypt-E): C = E(KS, M)
Giải mã (decrypt): M = D(KS, C) = D(KS, E(KS, M))
-Ví dụ: Một số hệ mật mã khóa đối xứng hiện đại mà mình thấy hay được sử dụng là DES AES RC4 RC5, , , ,...
2.Cơ chế hoạt động
-Một sơ đồ mã hóa đối xứng thường sử dụng một khóa đơn được chia sẻ giữa 2 hoặc nhiều người dùng với nhau. Khóa duy nhất này sẽ được dùng cho cả 2 tác vụ mã hóa và giải mã các văn bản thô (các tin nhắn hoặc mảnh dữ liệu cần được mã hóa). Quá trình mã hóa bao gồm việc chạy văn bản thô (đầu vào) thông qua một thuật toán mã hóa còn gọi là mật mã (cipher) sẽ lần luợt tạo ra các bản mã - ciphertext (đầu ra).
-Khi sơ đồ mã hóa đủ mạnh thì cách duy nhất để đọc và truy cập được các thông tin chứa trong các bản mã là sử dụng khóa tương ứng để giải mã. Quá trình giải mã về cơ bản sẽ chuyển đổi các bản mã trở về dạng văn bản thô ban đầu.
-Mức độ bảo mật của các hệ thống mã hóa đối xứng sẽ phụ thuộc vào độ khó trong việc suy đoán ngẫu nhiên ra khóa đối xứng theo hình thức tấn công brute force. Lấy ví dụ, để dò ra mã hóa của 1 khóa 128-bit thì sẽ mất tới vài tỷ năm nếu sử dụng các phần cứng máy tính thông thường. Thông thường, các khóa có độ dài tới 256-bit có thể được xem là có độ bảo mật cao tuyệt đối, có khả năng chống lại được hình thức tấn công brute force từ các máy tính lượng tử.
-Trong số các sơ đồ mã hóa đối xứng được sử dụng ngày nay thì có 2 loại thông dụng nhất là nền tảng mật mã block và stream. Trong mật mã block, dữ liệu được nhóm vào từng khối theo kích thước định trước, mỗi khối được mã hóa bằng khóa đối xứng và thuật toán mã hóa (vd: các văn bản thô 128-bit sẽ được mã hóa thành các bản mã 128-bit). Khác với mật mã block, mật mã stream không mã hóa dữ liệu văn bản thô theo block mà mã hóa theo các gia số 1-bit (mỗi văn bản thô 1-bit được mã hóa thành bản mã 1-bit mỗi lần).
3.Ưu và nhược điểm a.Ưu điểm
-Các thuật toán đối xứng vừa có khả năng cung cấp mức độ bảo mật khá cao, vừa có khả năng cho phép mã hóa và giải mã tin nhắn rất nhanh. Mức độ đơn giản về tương quan của các hệ thống đối xứng cũng là một ưu điểm về mặt logic bởi nó sử dụng ít năng lượng tính toán hơn so với các hệ thống bất đối xứng. Thêm vào đó, cấp độ bảo mật mà mã hóa đối xứng mang lại có thể được nhân rộng lên một cách đơn giản chỉ bằng việc tăng độ dài của các khóa. Với mỗi bit được thêm vào trong độ dài 1 khóa đối xứng, thì độ khó của việc phá vỡ mã hóa đó bằng tấn công brute force sẽ tăng lên theo cấp số mũ.
b.Nhược điểm
-Mặc dù mã hóa đối xứng mang lại khá nhiều lợi ích rộng rãi, nhưng nó lại sở hữu một bất lợi khá lớn: vấn đề cố hữu trong việc truyền tải các khóa dùng để mã hóa và giải mã dữ liệu. Nếu các khóa này được chia sẻ lên các kết nối không an toàn thì nguy cơ bị can thiệp bởi một bên thứ 3 là rất lớn. Khi một người dùng không được ủy quyền chiếm được quyền truy cập một khóa đối xứng thì mọi dữ liệu được mã hóa bằng khóa đó sẽ bị xâm phạm. Để giải quyết vấn đề này, hiện này nhiều giao thức website đã sử dụng kết hợp cả mã hóa đối xứng và bất đối xứng nhằm thiết lập các kết nối an toàn. Giao thức mã hóa Bảo mật Tầng Vận tải (TLS) là một trong nhiều ví dụ điển hình được sử dụng để bảo mật cho phần lớn mạng internet ngày nay.
-Cần lưu ý rằng bất cứ loại mã hóa máy tính nào cũng đều rất dễ bị khai thác nếu không được vận hành đúng cách. Mặc dù các khóa có độ dài đủ lớn sẽ triệt tiêu được các nguy cơ về tấn công brute force toán học, nhưng nếu có sai sót
trong việc triển khai từ phía các lập trình viên thì sẽ tạo ra các điểm yếu mở đường cho hacker thực hiện các vụ tấn công mạng.