AES-256-CBC (Cipher Block Chaining), thuật toán được sử dụng để mã hóa dữ liệu người dùng, là một mật mã tiêu chuẩn và được triển khai bởi chính phủ Hoa Kỳ và các cơ quan chính phủ khác trên toàn thế giới để bảo vệ dữ liệu tối mật. Với việc triển khai đúng cách và Khóa mã hóa đủ mạnh (từ Mật khẩu chính của người dùng), thuật toán AES-256-CBC được đánh giá là không thể bị phá vỡ.
AES-256-CBC là hệ thống mã hóa sử dụng thông số AES, khóa K dài 256 bit và ở chế độ hoạt động CBC. Dữ liệu đầu vào được mở rộng và chia thành các khối có độ dài cố định Pi, trong đó
Với khối P1, thực hiện phép XOR với P1 và vector khởi tạo VI:
PP1=P1⊕VI
Mã hóa kết quả PP1 từ bước 1 bằng AES với khóa K:
C1=AESE(PP1,K)
Từ khối P2 trở đi, Pi sẽ được XOR với kết quả mã hóa của khối trước:
PPi=Pi⊕Ci−1
Ci=AESE(PPi,K)
Các khối mã hóa Ci sẽ ghép lại với nhau thành dữ liệu mã hóa cuối cùng:
C=C1∣∣C2∣∣...
Quy trình giải mã sẽ diễn ra theo chiều ngược lại, dữ liệu đã được mã hóa C được chia thành các khối Ci.
Giải mã khối C1 bằng AES với khóa K:
PP1=AESD(C1,K)
Thực hiện XOR với PP1 và vector khởi tạo VI để thu hồi khối dữ liệu gốc P1:
P1=PP1⊕VI
Từ khối C2 trở đi, PPi sẽ được XOR với dữ liệu đã được giải mã của khối trước:
PPi=AESD(Ci,K)
Pi=PPi⊕Ci−1
Các khối dữ liệu đã giải mã Pi ghép lại với nhau để tái tạo thành dữ liệu gốc: