Chúng ta đang sống dưới thời đại của công nghệ, với tốc độ phát triển một cách đột phá như bây giờ, tốc độ của con người cũng phải đi ngang với tốc độ của nó. Lợi ích nó mang lại cũng không hề nhỏ thế nên được nhiều người sử dụng hơn. Cùng trong thời đại này sự bùng nổ mạnh mẽ của các đồng tiền ảo, với cái tên như thế nhưng nó hề ảo chút nào mà nó ngày càng trở nên hiện hữu hơn. Vì thế hiện nay có cái tên mới là tiền mã hóa để phù hợp với bản chất của nó hơn, mã hóa quan trọng với ngành công nghệ thông tin. Mật mã học có tầm ảnh hưởng như nào và ứng dụng trong kỹ thuật là gì? Chúng ta cùng tìm hiểu nhé. Một số khái niệm cơ bản trong Mật Mã Học
Phân loại thuật toán mã hóa trong mật mã họcCách phân loại theo khóa được sử dụng phổ biến nhất. Thuật toán mã hóa khóa đối xứngMô hình hệ mã hóa đối xứngThuật toán này còn có các tên khác như Secret Key Cryptography (hay Private Key Cryptography), quá trình mã hóa và giải hóa sử dụng một khóa. Được thực hiện như sau: Hệ thống mã hóa này, ban đầu phải thống nhất được về khóa dùng chung cho mã hóa và giải mã trước khi truyền dữ liệu 2 bên gửi và nhận, bộ phận sinh khóa đưa ra khóa. Tiếp theo là bên gửi mã hóa Plaintext bằng khóa bí mật rồi gửi thông điệp được mã hóa cho bên nhận. Công việc của bên nhận là dùng khóa bí mật trên giải mã và lấy ra Plaintext. Trên đây là quá trình trao đổi thông tin của bên gửi và nhận đã sử dụng mã hóa đối xứng. Quá trình này diễn ra điểm trọng tâm cần đảm bảo là khóa. Ở đây bước thỏa thuận về khóa trong việc mã hóa và giải mã một cách bí mật. Thỏa thuận về khóa bởi lý do sau:
Một số thuật toán mã hóa khóa công khai phổ biến
Thuật toán mã hóa bất đối xứngMã hóa bất đối xứngNó còn có tên khác là mã hóa khóa công khai (Public Key Cryptography) với thiết kế khóa sử dụng trong quá trình mã khóa khác biệt với khóa sử dụng trong giải mã. Hai khóa này có quan hệ về mặt toán học nhưng không thể suy diễn được ra nhau. Khóa được dùng ở đây sẽ được công khai cho tất cả mọi người thế nên thuật toán này gọi là Public-Key. Việc dùng khóa này để mã hóa rất dễ dàng nhưng chỉ có một người duy nhất có khóa giải mã tương ứng mới đọc được dữ liệu. Vì thế thuật mã hóa này Encryption key được gọi là Public key còn Decryption key được gọi là Prvate key. Thuật toán trên có ưu điểm về tốc độ thực hiện rất nhanh nhưng vẫn có nhược điểm sau:
Nhược điểm thuật toán mã hóa khóa riêng nằm ở việc quản lý khóa, để khắc phục thì mã hóa khóa công khai ra đời. Trong hệ thống mã khóa này thì một người sử dụng khi tham gia đều được cấp 2 khóa: một khóa để mã hóa dữ liệu (Public key) một dùng để giải mã (Private key). Khi đó Public key được nhiều người biết còn khóa còn lại chỉ duy nhất một người biết. Để truyền tin cho nhau sử dụng mã hóa công khai được thực hiện như sau:
Mã hóa khóa công khai được quản lý một cách linh hoạt và hiệu quả hơn. Khi dùng chỉ cần bảo vệ khóa Private key. Hệ thống này có độ an toàn cao hơn nhiều so với mã khóa riêng. Nhưng nó vẫn chưa được hoàn chỉnh, nó có tốc độ thực hiện không được nhanh chậm hơn mã khóa riêng gần 1000 lần. Vì thế họ đã gộp hệ thống mã khóa riêng và công hai với nhau là Hybrid Cryptosytems. Có các thuật toán mã công khai như sau:
Mã hóa một chiềuMã Hóa Một ChiềuCó trường hợp ta chỉ cần mã hóa thông tin chứ không giải mã lúc đó ta sẽ dùng phương pháp mã hóa một chiều. Thường thì hay sử dụng hàm băm (hash funcution) để đưa chuỗi thông tin thành chuỗi hash với độ dài nhất định. Ở đây sẽ không có cách để khôi phục chuỗi hash về chuỗi thông tin như lúc đầu. Hàm băm nhận một chuỗi có độ dài khác nhau chuyển đổi thành chuỗi hash có độ dài cố định. Hai hash được sinh ra với kết quả khác nhau rất nhiều, thế nên hash function thường sử dụng để kiểm tra tính toàn vẹn của dữ liệu. Gỉa sử bạn up một dữ liệu lên mạng với mục đích là người dùng có thể kiểm tra dữ liệu họ down về chính xác là dữ liệu mình up lên không. Khi đó bạn sẽ dùng hash function để băm dữ liệu file đó ra một chuỗi hash gửi kèm cho người dùng. Lúc này người dùng chỉ cần dùng đúng hash function để tìm chuỗi hash hiện tạ của file down, so sánh với chuỗi ban đầu giống nhau là ok. Bên cạnh đó nó còn giúp bạn lưu giữ mât khẩu của người dùng cách an toàn tuyệt đối, mật khẩu được lưu giữ dưới dạng chuỗi hash, mật khẩu có bị mất thì cũng khó thể giải mã được. Thuật toán mã hóa một chiều mà hay gặp đó là MD5 và SHA MD5 nó được chứng minh là không an toàn nhưng vẫn được dùng phổ biến trong việc lưu mật khẩu SHA ra đời sau MD5 và đã có phiên bản SHA-256 có độ an toàn cao. Kết luậnTrong ngành nghề công nghệ thông tin thì việc bảo mật rất quan trọng, để đảm bảo độ an toàn trong quá trình làm việc, ban đầu bạn cần nắm được các thuật ngữ và kiến thức của mật mã học. Trên đây là các thuật ngữ bạn cần nắm được trong quá trình làm việc đọc bài và tham khảo các bạn nhé. |