Mật mã học là một chủ đề lớn.
Mình sẽ đề cập đến những điều cơ bản để cung cấp cho bạn sự hiểu biết cơ bản.
Nó được sử dụng cho một loạt các ứng dụng, hầu như ở khắp mọi nơi trên internet.
1. Tại sao chúng ta cần mật mã?
Nếu không có mã hóa thông tin liên lạc qua internet sẽ không an toàn và ai đó sẽ rất dễ dàng nhìn thấy dữ liệu của bạn. May mắn thay, điều này không đúng và hầu như tất cả dữ liệu bạn nhận/gửi qua internet đều được mã hóa và người không có quyền truy cập vào nó không thể nhìn thấy dưới dạng văn bản thuần túy. Bây giờ chúng ta cùng xem xét mã hóa chi tiết hơn.
2. Các loại mật mã:
Có hai loại mật mã:
- Đối xứng
- Không đối xứng
Mật mã đối xứng là gì?
Giả sử Alice muốn gửi tin nhắn cho Bob, nhưng cô ấy không muốn gửi tin nhắn dưới dạng văn bản thuần túy vì ai cũng có thể đọc được.
Cô ấy có một công thức làm thế nào để xáo trộn các chữ cái theo cách mà không ai có thể hiểu nó có nghĩa là gì (đó được gọi là mã hóa). Bob có cùng một công thức nhưng anh ấy sử dụng nó để sắp xếp chúng để nó có thể đọc lại được (được gọi là giải mã), và anh ấy sẽ hiểu những gì Alice đã viết. Công thức tính toán giải mã trong mật mã được gọi là khóa. Trong mật mã đối xứng, cả hai người dùng đều có cùng một khóa để mã hóa và giải mã các thông điệp.
Mật mã bất đối xứng là gì?
Trong mật mã bất đối xứng, khóa mã hóa và khóa giải mã là khác nhau. Khóa mã hóa chỉ có thể được sử dụng để mã hóa, không được sử dụng để giải mã và ngược lại. Khóa mã hóa được gọi là Khóa công khai và khóa giải mã được gọi là Khóa riêng.
Tại sao mật mã bất đối xứng được sử dụng?
Vì nó an toàn hơn! Nếu bạn đang sử dụng mật mã đối xứng và ai đó lấy khóa của bạn, người đó có thể mã hóa và giải mã các tin nhắn mà bạn gửi. Trong khi sử dụng mật mã bất đối xứng, không thể giải mã các tin nhắn mà bạn đã mã hóa bằng khóa công khai. Chỉ người nắm giữ Khóa riêng mới có thể giải mã. Một ví dụ cụ thể:
Alice muốn nói chuyện với Google 👋
Google cấp cho Alice khóa Công khai. 🔑
Alice mã hóa tin nhắn của mình bằng khóa công khai và gửi đến Google.
Google giải mã tin nhắn bằng khóa riêng của anh ấy và gửi lại những gì Alice muốn.
Và đó là cách cuộc trò chuyện diễn ra ... 😀😀😁
Lưu ý: Mật mã đối xứng mã hóa và giải mã nhanh hơn bất đối xứng, nhưng bất đối xứng an toàn hơn.
3. Hàm băm là gì ?
Phần này mình giới thiệu cơ bản về hàm băm:
Hàm băm là một chuỗi dài gồm các chữ cái và số được tạo ra bởi các thuật toán băm. Lấy văn bản thuần túy và biến nó thành một hàm băm.
Điều quan trọng về băm là chúng không thể dịch ngược. Không có cách nào để giải mã một hàm băm.
Các thuật toán băm phổ biến là: MD5 (Message Digest 5) và SHA (Secure Hash Algorithm).
Đó là cách từ "hello" trông dưới dạng băm MD5: 5d41402abc4b2a76b9719d911017c592
Hàm băm được sử dụng để làm gì?
Việc sử dụng mã băm phổ biến nhất là để nhận dạng tệp và lưu trữ dữ liệu nhạy cảm, như mật khẩu. Khi bạn tạo tài khoản trên một trang web, mật khẩu của bạn sẽ được chuyển đổi thành hàm băm và hàm băm này được lưu trữ trong cơ sở dữ liệu của máy chủ. Vì vậy, khi bạn đăng nhập, mật khẩu bạn nhập vào sẽ được chuyển đổi thành băm, máy chủ sẽ lấy nó và so sánh với mã băm trong cơ sở dữ liệu của nó, nếu nó giống nhau có nghĩa là mật khẩu của bạn chính xác và máy chủ sẽ cho phép bạn đăng nhập.
Hàm băm MD5 cũng được sử dụng để đảm bảo tính toàn vẹn dữ liệu của tệp. Vì thuật toán băm MD5 luôn tạo ra cùng một đầu ra cho cùng một đầu vào nhất định, nó có thể được sử dụng để so sánh một băm của tệp nguồn với một băm mới được tạo của tệp đích để kiểm tra xem nó có còn nguyên vẹn và không bị sửa đổi.
0 Comments