Những điều cần phải biết về mã hóa dữ liệu
Mạng máy tính là một môi trường mở, những thông tin bạn gửi lên internet hoặc nhận về internet đều có thể bị nghe trộm. Do đó việc bảo mật những thông tin này là cần thiết, và một trong những cách để bảo mật thông tin hữu hiệu nhất hiện nay là mã hóa . Bài viết này sẽ cung cấp cho bạn những ...
Mạng máy tính là một môi trường mở, những thông tin bạn gửi lên internet hoặc nhận về internet đều có thể bị nghe trộm. Do đó việc bảo mật những thông tin này là cần thiết, và một trong những cách để bảo mật thông tin hữu hiệu nhất hiện nay là mã hóa. Bài viết này sẽ cung cấp cho bạn những thông tin cơ bản và dễ hiểu nhất về mã hóa dữ liệu.
Mã hóa thông tin là gì?
Ta có thể hiểu đơn giản rằng, mã hóa là một phương pháp bảo vệ thông tin, bằng cách chuyển đổi thông tin từ dạng có thể đọc và hiểu được thông thường sang dạng thông tin không thể hiểu theo các thông thường. Việc làm này giúp ta có thẻ bảo vệ thông tin tốt hơn, an toàn trong việc truyền dữ liệu. Dù kẻ xấu có được các gói tin, cũng khó có thể hiểu được nội dung của nó.
Vì sao việc mã hóa dữ liệu lại đặc biệt quan trọng?
Như đã trình bày bên trên, việc mã hóa là để đảm bảo tính an toàn cho thông tin, đặc biệt trong thời đại công nghệ số như hiện nay. Bạn hãy thử tưởng tượng xem, nếu không có mã hóa dữ liệu thì sẽ như thế nào? Ví dụ, bạn đang làm việc cho một công ty lớn, và bạn phải gửi tài liệu quan trọng cho đồng nghiệp của mình. Tuy nhiên, dữ liệu ấy lại không được mã hóa. Và thế là, bằng một số thủ thuật nhỏ, công ty đối thủ có được số tài liệu đó. Điều này sẽ gây tổn thất không hề nhỏ cho công ty. Nhưng ngược lại, nếu thông tin được mã hóa cẩn thận, chỉ có những người có key mới mở được nó, thì sẽ không có những chuyện như vậy xảy ra.Vì thế mà việc mã hóa thông tin trở nên vố cùng quan trọng.
Xem thêm: Bảo mật thông tin
Phương pháp mã hóa
Mã hóa cổ điển
Đây là phương pháp mã hóa cổ xưa và đơn giản nhất. Ngày nay phương pháp này không còn được sử dụng nhiều so với những phướng pháp khác. Bởi nó quá đơn giản. Ý tưởng của phương pháp này là: bên A mã hóa thông tin bằng thuật toán mã hóa cổ điển, và bên B giải mã thông tin, dựa vào thuật toán của bên A cung cấp, không cần dùng đến bất kì key nào. Vì thế toàn bộ độ an toàn của kiểu mã hóa này phụ thuộc vào bí mật của thuật toán. Nếu một người thứ ba biết được thuật toán thì xem như thông tin không còn bảo mật nữa. Việc giữ bí mật thuật toán trở nên vô cùng quan trọng, và không phải ai cũng có thể giữ bí mật đó một cách trọn vẹn.
Mã hóa một chiều (hash)
Có những tường hợp chúng ta chỉ cần mã hóa thông tin chứ không cần giải mã nó. Đó là khi chúng ta cần sử dụng kiểu mã hóa một chiều này. Ví dụ, khi bạn đăng nhập vào một trang web, mật khẩu của bạn sẽ được hàm băm (hush function) “băm nhỏ” , chuyển thành một chuỗi các kí tự như “KhhdhujidbH”. Thực chất, cơ sở dữ liệu lưu lại các kí tự mã hóa này chứ không lưu lại mật khẩu của bạn. Lỡ hacker có trộm dữ liệu thì cũng chỉ thấy những kí tự khó hiểu chứ không biết password thật của bạn là gì.
Đặc điểm của hash function đó là trong cùng 1 điều kiện, dữ liệu đầu vào giống nhau thì nó sẽ cho ra kết quả y hệt nhau. Nếu chỉ cần thay đổi một kí tự trong chuỗi, từ chữ hoa sang chữ thường, kết quả sẽ hoàn toàn khác. Cũng vì vậy mà người ta dùng hash function để kiểm tra tính toàn vẹn của dữ liệu.
Hiện nay, hai thuật toán hash function thường được dùng nhất là MD5 và SHA. Nếu bạn download file trên mạng thì đôi khi sẽ thấy dòng chữ MD5 do tác giả cung cấp. Bạn sẽ phải nhập mã hiện lên theo yêu cầu. Mục đích là để bạn so sánh file đã download với file gốc xem có bị lỗi gì không.
Mã hóa bất đối xứng
Kiểu mã hóa này còn có tên gọi khác là mã hóa khóa công khai. Nó sử dụng đến hai khóa (key) khác nhau. Một khóa gọi là khóa công khai (public key) và một khóa khác là khóa bí mật (private key). Dữ liệu được mã hóa bằng public key. Tất cả mọi người đều có thể có được key này. Tuy nhiên để giải mã được dữ liệu, người nhận cần phải có private key.
Để thực hiện mã hóa bất đối xứng thì:
- Người nhận sẽ tạo ra một gặp khóa (public key và private key), họ sẽ giữ lại private key và truyền cho bên gửi public key. Vì public key này là công khai nên có thể truyền tự do mà không cần bảo mật.
- Trước khi gửi tin nhắn, người gửi sẽ mã hóa dữ liệu bằng mã hóa bất đối xứng với những key nhận được từ người nhận
- Người nhận sẽ giải mã dữ liệu nhận được bằng thuật toán được sử dụng ở bên người gửi, với key giải mã là private key.
Điểm yếu lớn nhất của kiểu mã hóa này là tốc độ mã hóa và giải mã rất chậm. Nếu dùng kiểu mã hóa bất đối xứng trong việc truyền dữ liệu thì sẽ rất tốn phí và mất thời gian.
Thuật toán mã hóa bất đối xứng thường thấy: RSA.
Mã hóa đối xứng
Phương pháp mã hóa này chỉ cần dùng một key giống nhau để mã hóa và giải mã. Theo một số tài liệu thì mã hóa đối xứng là giải pháp được sử dụng nhất phổ biến hiện nay.
Quy trình mã hóa được miêu tả như sau:
- Dùng giải thuật ngẫu nhiên mã hóa + key để mã hóa dữ liệu gửi đi.
- Bằng cách nào đó, key của người gửi sẽ được gửi đến cho người nhận, có thể là giao trước hoặc sau khi mã hóa file đều được.
- Khi người nhận nhận được dữ kiệu, họ sẽ dùng key này để giải mã dữ liệu để có được dữ liệu chuẩn.
Tuy nhiên vấn đề bảo mật nằm ở chỗ, làm thế nào đẻ chuyển key cho người nhận một cách an toàn. Nếu key này bị lộ, bất kì ai sử dụng giải thuật phía trên đều có thể giải mã được dữ liệu như vậy thì tính bảo mật sẽ không còn nữa.
Chúng ta sẽ thường thấy hai thuật toán thường thấy là DES và AES. Thuật toán DES xuất hiện từ năm 1977 nên không được sử dụng phổ biến bằng AES. Thuật toán AES có thể dùng nhiều kích thước ô nhớ khác nhau để mã hóa dữ liệu, thường thấy là 128-bit và 256-bit, có một số lên tới 512-bit và 1024-bit. Kích thước ô nhớ càng lớn thì càng khó phá mã hơn, bù lại việc giải mã và mã hóa cũng cần nhiều năng lực xử lý hơn.
Ứng dụng
Như đã trình bày ngay từ đầu bài viết, mã hóa dữ liệu có vai trò hết sức quan trọng, đặc biệt là trong giao dịch điện tử. Có thể nói mã hóa chính là việc đảm bảo bí mật , toàn vẹn thông tin, khi thông tin được truyền trên mạng internet. Mã hóa cũng là nền tảng của kĩ thuật chữ ký điện tử, hệ thống PKI,… Có thể vấn đề này sẽ được bàn đến trong bài viết tới của SecurityBox. Vì vậy, hãy theo dõi page của chúng tôi để có những thông tin bổ ích nhé.