Cryptography là một thuật ngữ được sử dụng phổ biến trong lĩnh vực công nghệ thông tin nói chung và tiền điện tử nói riêng. Vậy bạn đã bao giờ nghe và tìm hiểu về thuật ngữ này chưa, cùng Muaban.net tìm hiểu xem Cryptography là gì tại bài viết này nhé.
1. Tìm hiểu về Cryptography
1.1 Cryptography là gì?
Cryptography (hay còn gọi mật mã học) là hoạt động nghiên cứu các kỹ thuật truyền thông bảo mật, chỉ cho phép người gửi và người nhận đọc được nội dung bên trong thông điệp đó.
Thuật ngữ này xuất phát từ tiếng Hy Lạp – kryptos, có nghĩa là ẩn. Đơn giản hơn, có thể hiểu, 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.
>>> Xem thêm: Framework là gì? Giải thích thuật ngữ các loại Framework
1.2 Lịch sử của Cryptography
Từ thời Ai Cập cổ đại, con người đã sử dụng mật mã để ẩn giấu những tài liệu mật.
- 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 trước Công nguyên.
- Vào khoảng những năm 1500 trước Công nguyên 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 bằng những viên đất sét.
- 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 trước Công nguyên.
Cùng với sự phát triển của 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.
Hơn nữa, 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ủ các cuộc xuất kích lớn của Đức vào Biển bắc.
- 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.
- Đến năm 1990, Internet ra đời và đã đượ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.
>>> Xem thêm: Hệ mã hóa RSA là gì? Cách thức hoạt động của RSA
1.3 Mục đích sử dụng Cryptography
Cryptography được sử dụng cho rất nhiều mục đích:
- Giải trí: Cryptography được ứng dụng như một loại trò chơi giải mã.
- Bảo mật:
- 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.
- Cryptography được sử dụng chủ yếu để tạo lợi thế trong chiến tranh.
- 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
Như vật, Cryptography đang ở xung quanh chúng ta và hỗ trợ cho đời sống con người rất nhiều.
1.4 Một số thuật ngữ liên quan đến Cryptography
- Encryption: mã hóa
- Decryption: giải mã
- Output: đầu ra
- Input: đầu vào
- Key: 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.
2. 4 loại mã hóa thường gặp
Sau đây là 4 loại mã hóa thường gặp trong đời sống:
2.1 Symmetric Encryption – Mã hóa đối xứng
Symmetric Encryption (mã hóa đối xứng) là 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ó phương pháp giải mã (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.
2.2 Asymmetric Encryption – Mã hóa bất đối xứng
Sử dụng Symmetric Encryption trên mạng Internet vốn dĩ không an toàn. Vì thế, Asymmetric Encryption được ra đời. Mã hóa bất đối xứng sẽ có 2 key, 1 key riêng tư do người mã hóa nắm 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.
2.3 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 (hàm băm). Đây 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.
2.4 Digital signatures – Chữ ký số
Digital signatures (chữ ký 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.
Nguồn tham khảo: Wikipedia
3. Những câu hỏi thường gặp về Cryptography (FAQ)
3.1 Một số thuật ngữ thông dụng trong Cryptography
- Sender/Receiver: người gửi và nhận thông tin.
- Attacker/Hacker: người tấn công những dữ liệu trên đường truyền thông tin.
- Plaintext: thông tin, dữ liệu ở dạng ban đầu có thể đọc hiểu được trước khi mã hóa.
- Ciphertext: thông tin đã được mã hóa, dữ liệu ở dạng có thể đọc nhưng không thể hiểu được.
- Encryption: quá trình mã hóa thông tin từ Plaintext thành Ciphertext.
- Decryption:quá trình giải mã lấy lại những thông tin ban đầu (chuyển đổi từ Ciphertext sang Plaintext).
- Confidentiality (tính bảo mật): đảm bảo dữ liệu của chúng ta không thể bị truy cập và đọc bởi người dùng không được cấp phép.
- Integrity (tính toàn vẹn): dữ liệu khi được chuyển đến người nhận cần đảm bảo 100% nguyên vẹn, không bị chủng sửa dù là bất kỳ nguyên nhân nào như tấn công mạng, mất mát dữ liệu,…
- Availability (tính sẵn sàng): dữ liệu có thể được truy cập bất cứ khi nào cần thiết.
- Non-repudiation (tính không bác bỏ): trong một giao dịch, khi bên A thực hiện gửi dữ liệu cho bên B thì bên A không có khả năng phủ nhận việc đó sau này. Nói cách khác, đây là cách đảm bảo rằng không ai khác ngoài A là người tạo tin và gửi tin.
Tham khảo ngay những tin đăng mua bán, sửa chữa máy tính, laptop cũ giá tốt, uy tín
3.2 Có thể tự học về Cryptography được không?
Để có thể tự học code online nói chung và Cryptography nói riêng 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í trên 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.
>>> Xem thêm: ChatGPT và cách đăng ký sử dụng ChatGPT đơn giản nhất hiện nay
3.3 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”, 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ọ.
4. Lời kết
Hy vọng những thông tin trên đã giúp bạn hiểu thêm về Cryptography là gì. Để tìm biết thêm các thông tin khác, đừng quên truy cập vào website Muaban.net nhé.
>> Xem thêm:
- API là gì? Tổng hợp kiến thức cơ bản về API
- Web Service là gì? Cấu trúc chung và thành phần của Web Service
- Viết code là gì? 6 bước để trở thành Coder cho người mới bắt đầu