Mã hóa là gì? và tại sao chúng ta cần nó?

Khi chúng ta truyền thông điệp từ nơi gửi đến nơi nhận, nếu đảm bảo 100% là nơi nhận sẽ nhận được thông tin nguyên vẹn và không hề bị xâm phạm bởi bất kỳ ai, thế thì lúc ấy không cần bất cứ hình thức mã hóa nào, ta cứ để thông tin như nó vốn thế.

Mã hóa dữ liệu giúp bạn an toàn hơn

Nhưng đời không như là mơ, không hề có cái 100% đó, thông tin gửi đi có thể bị xem trộm bởi ai đấy chủ động tấn công trên kênh truyền tin (có thể là đường thư tín, đường điện thoại, mạng internet…). Khi ấy kẻ tấn công sẽ xem các thông tin cần bảo mật một cách dễ dàng.

Chính việc mã hóa làm cho bên tấn công dù có được thông tin thì cũng không thể hiểu được nội dung trừ khi có khóa giải mã.

Tôi nhớ ngày xưa vì ham đá bóng quá mà bố tôi cấm tôi không được đi chơi cùng mấy đứa trong xóm. Mỗi lần đi đá bóng, chúng sẽ gọi tên tôi, và dĩ nhiên bố tôi cũng nghe thấy nữa nên ông cấm tiệt. Để thay đổi tình huống này, tôi đã bảo chúng bạn gọi tên khác, thay vì gọi tên thật của tôi và đừng bảo là đi đá bóng. Tôi đã lừa được bố tôi vài lần nhưng về sau ông cũng phát hiện ra quy luật :))

Ở tình huống trên là một kiểu mã hóa rất đơn giản. Cả tôi và bố đều tiếp nhận cùng một thông tin nhưng vì có thỏa thuận từ trước (khóa giải mã) nên tôi hiểu được ý nghĩa đằng sau của các thông điệp đó còn bố tôi thì không.

Có 5 thuật ngữ quan trọng cần phải nhớ, đó là:

  • Bản rõ: thông tin trước khi được mã hóa, khi được tiếp xúc với bản rõ mọi người đều hiểu được ý nghĩa của nó.
  • Bản mật: thông tin sau khi được mã hóa, và người khác không thể hiểu được ý nghĩa của nó.
  • Mã hóa: là cách thức đưa bản rõ thành bản mật.
  • Giải mã: là cách thức đưa bản mật thành bản rõ.
  • Khóa: cũng giống như chìa khóa ngoài đời, là phương tiện giúp cho việc giải mã.
Khi quá trình mã hóa dữ liệu được tiến hành và gửi đi, chúng ta chấp nhận giả thuyết không mấy vui vẻ là dữ liệu mã hóa đó có thể bị xem trộm, nhưng ta vẫn an tâm vì chúng sẽ không thể hiểu được ý nghĩa của đống lộn xộn đó! Ngay cả bản thân chúng ta và cả người nhận cũng sẽ chẳng hiểu thông tin sau khi được mã hóa, điều duy nhất giúp hiểu được thông tin đó chính là khóa.
Do vậy, việc bảo mật khóa là vô cùng quan trọng, mất khóa đồng nghĩa với mất thông tin, nó giống y như việc bạn để rơi khóa két sét vào tay kẻ trộm vậy.
Câu hỏi đặt ra: dù kẻ tấn công biết khóa nhưng làm sao hắn biết được thuật toán mã hóa để giải mã?

Trừ khi bạn nghĩ ra được thuật toán hoàn toàn mới, còn không các thuật toán mã hóa về cơ bản là dựa trên cùng một nền tảng. Và việc kẻ tấn công trình độ cao nắm rõ các thuật toán giải mã này là điều được giả định từ trước. Cái duy nhất mà chúng không biết là khóa mà thôi.

Câu hỏi tiếp theo: nếu tôi truyền được khóa theo cách an toàn và bảo mật thì tại sao tôi không sử dụng kênh đó để truyền thông tin – việc gì phải mã hóa nữa?

Câu trả lời là, thông tin truyền đi có thể rất lớn, trong khi khóa thì thường rất nhỏ gọn. Nó giống như bạn có cả tủ tài liệu to trong khi khóa cho đống tài liệu đó thì nhỏ hơn nhiều.

Leave a Comment