Từ thời Ai Cập cổ đại, mật mã đã được sử dụng để lưu trữ các tài liệu mật và trong suốt lịch sử nhân loại, mật mã vẫn luôn tồn tại và phát huy giá trị “bảo vệ bí mật” của mình. Trong bài viết này, chúng ta sẽ đi tìm hiểu về “Cryptography là gì”, “Lịch sử hình thành của Cryptography” và “những loại mã hóa thường gặp” nhé!
Tìm hiểu về Cryptography
Cryptography là gì?
Theo ngôn ngữ hiện đại và liên quan đến công nghệ: Cryptography hay mật mã học là hoạt động nghiên cứu về các kỹ thuật truyền thông an toàn, chỉ cho phép người nhận và người gửi có thể đọc được nội dung bên trong thông điệp đó.
Thuật ngữ “Cryptography” xuất phát từ tiếng Hy Lạp – kryptos, có nghĩa là ẩn. Có thể hiểu một cách đơn giản: mã hóa là hành động xáo trộn những nội dung trong 1 thông điệp nhằm ẩn nội dung thông điệp đó đi, chỉ có bên nhận và gửi mới có thể đọc được nội dung bên trong.
Lịch sử về Cryptography
Lịch sử về Cryptography là một chủ đề rất thú vị. Bạn sẽ mất không ít thời gian để tìm hiểu vì từ Ai Cập cổ đại xa xưa, con người đã biết dùng mật mã để ẩn giấu những tài liệu mật.
Trong nội dung ngắn gọn của bài viết, Tino Group sẽ không thể giới thiệu “lịch sử thế giới” được. Vì thế, Tino Group sẽ tóm tắt một số sự kiện quan trọng trong một giai đoạn nổi bật để bạn hiểu thêm về lịch sử của Cryptography nhé!
- Những phát hiện sớm nhất về Cryptography là từ những ký tự tượng hình phức tạp trong một lăng mộ của người Ai Cập cổ đại từ năm 1900 TCN.
- Những viên đất sét có niên đại vào khoảng những năm 1500 TCN tại Lưỡng Hà cho thấy, những người thợ thủ công đã mã hóa công thức làm men gốm.
- Những học giả Do Thái đã sử dụng một số mật mã đơn giản như Atbash (thay đổi vị trí các chữ cái trong bảng chữ cái) từ khoảng những năm 600 đến 500 TCN.
- Song song với mã hóa là kỹ thuật giải mã cũng được phát triển, sự kiện nổi bật nhất chính là nhà toán học người Ả Rập, Al-Kindi đã phát minh ra kỹ thuật phân tích tần số để giải mã mật mã thay thế đơn pha vào khoảng năm 800 sau Công Nguyên.
Dù có lịch sử hình thành lâu đời nhưng Cryptography thực sự được quan tâm và phát triển nhiều thứ hơn để phục vụ cho chiến tranh.
- Trong chiến tranh thế giới thứ nhất, phòng 40 của bộ hải quân Anh đã giải mã thành công mật mã của hải quân Đức tạo lợi thế phòng thủ và phát hiện các cuộc xuất kích lớn của Đức vào Biển bắc như các trận đánh Dogger Bank và Jutland.
- Năm 1917, Gilbert Vernam là người đã “mở màn” cho việc gửi cách giải mã đến đầu nhận. Điều này dẫn đến sự phát triển của các thiết bị cơ điện, máy mật mã và các loại mật mã không thể giải mã trong 1 lần. Có rất nhiều thông tin về mật mã nhưng chủ yếu được sử dụng trong chiến tranh.
- Cho đến năm 1990, khi internet đã được sử dụng cho các mục đích thương mại đã đòi hỏi sự ra đời của các tiêu chuẩn mã hóa để bảo vệ người dùng.
Trong phần này, Tino Group sẽ giới thiệu thêm về ông Claude Shannon – người được xem là cha đẻ của mật mã toán học hiện đại. Ông đã sống và làm việc tại Bell Lab và viết ra một bài báo có tựa đề “A mathematical theory of cryptography” vào năm 1945 và được xuất bản trên Bell System Technical Journal vào năm 1949.
Tại sao phải sử dụng Cryptography?
Như các bạn đã thấy trong phần trước, Cryptography được sử dụng cho rất nhiều mục đích:
- Một loại trò chơi giải mã để giải trí, làm thú vui
- Dùng để chống lại việc người khác đọc trộm nội dung
- Sử dụng để cất giấu bí mật thương mại
- …
Trong đó, Cryptography lại được ghi nhận sử dụng chủ yếu để hỗ trợ tạo lợi thế trong chiến tranh.
Trong thời kỳ hiện đại, Cryptography được sử dụng chủ yếu vào việc:
- Hỗ trợ bảo mật thông tin cho người dùng
- Mã hóa nội dung tin nhắn, cụ thể nhất chính là email
- Hỗ trợ trong việc bảo mật thanh toán điện tử cho người dùng
- …
Đọc đến đây, có lẽ các bạn cũng đã thấy rằng: Cryptography đang ở xung quanh chúng ta và hỗ trợ cho đời sống con người rất nhiều đúng không nào!
Chúng ta sẽ tiếp tục tìm hiểu thêm về 4 loại mã hóa thường gặp trong đời sống để hiểu thêm về Cryptography nhé!
4 loại mã hóa thường gặp
Một số thuật ngữ trong bài viết sẽ giữ nguyên:
- Encryption: mã hóa
- Decryption: giải mã
- output: đầu ra
- input: đầu vào
- key: khóa – trong bài viết có nghĩa là: phương pháp giải mã
- Data: Dữ liệu/ nội dung
Nội dung về phần các loại mã hóa thường gặp sẽ không có ví dụ về thuật toán nhằm làm nội dung trở nên thân thiện hơn với bạn đọc phổ thông.
Symmetric Encryption – Mã hóa đối xứng
Symmetric Encryption hay Mã hóa đối xứng là một trong những dạng mã hóa phổ biến và dễ thực hiện nhất, trong đó:
- Encryption: là quá trình mã hóa nội dung một thông điệp, khiến người không có key không thể hiểu được nội dung của thông điệp.
- Decryption: là quá trình giải mã, thông thường sẽ dùng key do người thực hiện mã hóa cung cấp để giải mã và đọc được nội dung thông điệp.
Asymmetric Encryption – Mã hóa bất đối xứng
Nếu bạn sử dụng Symmetric Encryption trên mạng Internet vốn dĩ không an toàn, đồng nghĩa với việc key lẫn thông điệp bạn gửi đi đều sẽ có thể bị đọc trộm. Vì thế, Asymmetric Encryption – Mã hóa bất đối xứng được sinh ra.
Với Asymmetric Encryption, chúng ta sẽ có 2 key, 1 key riêng tư do chúng ta giữ và một key công khai sẽ được gửi đến đối tác. Cả 2 key này sẽ được dùng để xác nhận 2 bên và tạo ra một kết nối an toàn hơn.
Hashing functions – Hàm băm
Trong thực tế, Asymmetric Encryption vẫn có thể dễ dàng bị phá khi khóa công khai bị làm giả. Một phương án khác được thực hiện đó chính là Hashing functions (hay Hàm băm) được ra đời và Hashing functions là hàm 1 chiều không thể khôi phục lại 100% nội dung thông điệp ban đầu. Điều này sẽ vô cùng lý tưởng cho việc xác thực dữ liệu.
Hashing functions lý tưởng sẽ cần phải thỏa được 2 điều:
- 1 input đưa vào chỉ có duy nhất 1 output được tạo ra và không được trùng lặp với bất kỳ output nào đã tồn tại.
- 1 input sẽ có kết quả output giống nhau dù cho thực hiện bao nhiêu lần.
Vì thế, Hashing functions được áp dụng tốt nhất vào việc bảo mật mật khẩu. Server chỉ lưu lại kết quả output và so sánh kết quả output khi người dùng nhập mật khẩu.
Digital signatures – Chữ ký số
Nếu bạn đang tìm một phương thức bảo mật “xịn” hơn nữa, Digital signatures hay Chữ ký số, có lẽ sẽ đáp ứng được yêu cầu của bạn.
Digital signatures sẽ sử dụng kết hợp cả Hashing functions và asymmetric encryption để mã hóa thông điệp giúp đạt được 2 mục đích: bảo vệ tính toàn vẹn, bảo mật của dữ liệu và có thể xác nhận được danh tính trong quá trình gửi đi.
Đến đây, chúng ta đã cùng nhau trải qua một hành trình dài từ thời Ai Cập cổ đại cho đến chiến tranh Thế Giới lần I, lần II và hiện tại để tìm hiểu về Cryptography là gì. Tino Group hi vọng rằng những kiến thức này sẽ giúp bạn một phần nào đó trong quá trình trở thành một nhà mật mã học vĩ đại trong tương lai!
Nguồn tham khảo: Medium, Wikipedia, Khan Academy, Kaspersky,…
Những câu hỏi thường gặp về Cryptography
Học Cryptography có việc làm tại Việt Nam hay không?
Có. Nếu bạn học Cryptography thật sự giỏi và có một chút kiến thức để “quảng cáo bản thân”. Tino Group tin chắc rằng Big Tech – những ông “trùm” công nghệ trên thế giới sẽ sớm nhắm đến và mời bạn gia nhập vào công ty của họ.
Brute force attack là gì?
Brute Force attack là một loại tấn công mạng sử dụng kỹ thuật đoán thử nhắm vào phần đăng nhập của hệ thống/ website hay ứng dụng nào đó để đánh cắp tài khoản (thường là tài khoản cấp quản lý) nhằm chiếm đoạt hệ thống/ website hoặc ứng dụng.
Làm sao để chống brute force attack cho VPS?
Có rất nhiều phương pháp để chống brute force attack cho VPS. Nếu bạn muốn tìm chống brute force attack cho VPS miễn phí, Tino Group giới thiệu với bạn cách sử dụng Fail2ban để chống brute force attack cho VPS siêu hiệu quả nhé!
Làm sao để học viết code online và học về Cryptography hiệu quả?
Nếu bạn muốn học viết code online nói chung và Cryptography nói riêng sao cho hiệu quả, việc duy nhất bạn cần thực hiện đó chính là cam kết dành thời gian và sự tập trung cho những việc đó.
Về phương pháp học, bạn sẽ có rất nhiều tài liệu online từ các trang nổi tiếng như:
- Codecademy
- Udemy
- FreeCodeCamp
- Codepen
- Coursera
- Khan Academy: Ancient cryptography
- …
Bạn có thể tìm cả khóa học về bất kỳ ngôn ngữ nào cũng như những khóa học về mật mã hoàn toàn miễn phí tại những trang đó. Tuy nhiên, nhược điểm lớn của những trang này là không hỗ trợ tiếng Việt. Vì thế, bạn sẽ cần phải chủ động học thêm tiếng Anh để việc học của bạn trở nên dễ dàng hơn nhé!