1. Tiêu chuẩn chỉnh mã hóa AES là gì?
1.1 Giới thiệuAES (Advanced Encryption Standard) là 1 thuật toán “mã hóa khối” (block cipher). AES trở thành trong những thuật toán mã hóa phổ biến nhất thực hiện khóa mã đối xứng nhằm mã hóa và lời giải (một số được giữ kín đáo dùng mang đến quy trình không ngừng mở rộng khóa nhằm mục đích tạo ra một tập các khóa vòng).
Bạn đang xem: Aes là gì
Một số khái niệm:
Bản rõ (Plaintext): Dạng ban sơ của thông báoBản mã (Ciphertext): Dạng mã của phiên bản rõ ban đầuKhóa (Key): tin tức tham số dùng để mã hóaMã hóa (Encryption): thừa trình đổi khác thông tin từ bỏ dạng bản rõ sang bản mã bởi khóa hoặc không đề nghị khóaGiải mã (Decryption): quy trình ngược lại chuyển đổi thông tin tự dạng bản mã sang bản rõAES là 1 trong thuật toán mã hóa khối đối xứng với độ nhiều năm khóa là 128 đậy (một chữ số nhị phân có mức giá trị 0 hoặc 1), 192 bịt và 256 bít tương xứng dọi là AES-128, AES-192 với AES-256. AES-128 sử dụng 10 vòng (round), AES-192 áp dụng 12 vòng và AES-256 sử dụng 14 vòng.
AES được thực hiện bởi các hàm theo thứ tự sau: Trộn từng byte (SubBytes), trộn từng mặt hàng (ShiftRows), trộn từng cột (MixColumns) cùng mã hóa (AddRoundKey). Trong những số đó SubBytes, ShiftRows, MixColumns có nhiệm vụ làm cho mối dục tình giữa phiên bản rõ và phiên bản mã bị che khuất (phương thức "mập mờ"). AddRoundKey thực hiện key mã hóa nhằm mã hóa tài liệu đầu vào bằng câu hỏi phân tán phần lớn kiểu mẫu của bạn dạng rõ sang phiên bản mã (phương thức "khuếch tán")
Về cơ bản, chế độ sẽ như sau:

2. OpenSSL::Cipher
2.1 Giới thiệu:Trong công nghệ bảo mật của các ứng dụng thì OpenSSL::Cipher là một trong những tiện ích nguồn mở dùng để mã hoá dữ liệu vô cùng quan trọng, cung ứng các module chất nhận được mã hóa, lời giải dữ liệu. Thường thì ứng dụng ruby sẽ áp dụng module Cipher để thực hiện việc mã hóa này.
module của Cipher mình ra mắt ở đây đang sử dụng phương pháp mã hóa là: Secret Key Encryption - mã hóa key túng thiếu mật
Đơn giản nhưng nói thì đây là kiểu mã hóa dùng một key kín mà bảo vệ dùng key này ta rất có thể mã hóa dữ liệu (plain text) thành 1 đoạn mật mã (ciphertext) cùng đồng thời có thể khôi phục được duy nhất toàn bộ dữ liệu tự đoạn mã hóa kia. Tuy vậy kiểu đơn giản và dễ dàng (như kiểu dáng ECB mode) như này thì sẽ không bình yên cho 1 số trường hợp ví dụ khi chúng ta mã hóa 1 đoạn (16bytes) các ký tự tương đương nhau thì đoạn mã hóa trả ra cũng biến thành bị lặp lại.
Do kia mã hõa cần sử dụng key bí mật hiện đại thời buổi này ngoài 2 trường trên bạn ta đã thêm 1 trường mới là vecto khởi sinh sản IV (Initialization Vector) hoặc nonce (1 số thốt nhiên dùng 1 lần). Vào mã hóa này thì ngôi trường key đang cần bảo mật thông tin 2 trường IV, nonce thì đang lưu trong khúc mã giữ hộ đi.
2.2. Ví dụ sử dụng module CipherVí dụ ta gồm một đoạn plain text như sau: plain_text = "test ma hoa", phía mã hóa cùng phía giải mã thống độc nhất 1 đoạn key mã hóa bao gồm 16 ký kết tự là "keygiaima1234567", 2 bên thống nhất phương pháp sinh ra Initialization Vector (iv) tự key mã hóa bên trên là:
Digest::MD5.hexdigest keyTiến hành mã hóa:cipher = OpenSSL::Cipher::AES.new(128, :CBC)cipher.encryptcipher.key = keycipher.iv = ivencrypted = cipher.update(plain_text) + cipher.finalkết quả của encrypted = "xC9x93xBDllpx93xC7KxBCxB7xD8xC9x02-"

decipher = OpenSSL::Cipher::AES.new(128, :CBC)decipher.decryptdecipher.key = keydecipher.iv = ivplain = decipher.update(encrypted) + decipher.finalKết quả:

Vậy công dụng của việc lời giải đã tạo ra đoạn text ban đầu. Và câu hỏi mã hóa này phải có key bảo mật và phương pháp sinh ra Initialization Vector mới có thể giải mã được. Ứng dụng của nó có rất nhiều, nhưng hay thấy nhất vào việc bảo mật request của client cùng server, né bị spam bởi postman nếu như khách hàng sử dụng một params động sinh ra từ những việc mã hóa.
Xem thêm: What Is Line In? S Line In? Definition Of Line In By The Free Dictionary
3. Kết luận
Qua bài viết, mình đã trình làng về tiêu chuẩn mã hóa AES với module Cipher dùng để làm mã hoá, giải thuật của ứng dụng OpenSSL::Ciphe. Việc bảo mật thì luôn cần thiết giúp né spam, giả request nhằm hack khối hệ thống ...
4. Tài liệu tham khảo
https://docs.ruby-lang.org/en/trunk/OpenSSL/Cipher.htmlhttps://vi.wikipedia.org/wiki/Advanced_Encryption_Standard