4. Nội dung và bố cục của luận văn
2.2.3. Cơ chế mã hóa khóa bí mật
2.2.3.1. Cơ chế mã hóa AES
AES là thuật toán mã hóa khối được chính phủ Hoa Hỳ áp dụng làm chuẩn mã hóa từ năm 2001. AES có thể thể dễ dàng thực hiện với tốc độ cao bằng phần mềm hoặc phần cứng và không đỏi hỏi nhiều bộ nhớ. Nó sử dụng một kích thước khối 128- bit và kích thước khóa 128, 192, hoặc 256 bit. Hình 2.2 minh họa tiến trình mã hoá AES.
Để mã hóa khối dữ liệu bằng AES thì đầu tiên, tiến hành thao tác:
Add Round Key (thao tác XOR một khóa con với khối dữ liệu). Tiếp theo thì thực hiện một số vòng lặp chính, số vòng lặp chính trong Rijdael như sau:
Là 9 vòng nếu cả khối cùng mã hóa và khóa có cùng chiều dài là 128 bit. Là 11 vòng nếu hoặc khối dữ liệu hay khóa là 192 bit và không có cái nào có kích thước lớn hơn 192 bit.
Là 13 vòng nếu hoặc khối dữ liệu hay khóa có chiều dài là 256 bit. Vòng lặp chính bao gồm những bước sau:
SubByte (Substitution Byte): Mỗi byte của khối được thay thế bằng một giá trị khi qua một hộp S-box.
ShiftRow (Shift Rows): Là quá trình chuyển đổi các dòng.
MixColumn (Multiply Colunms): Thực hiện quá trình nhân ma trận, mỗi cột được nhân với một ma trận kích thước 4x4.
AddRoundKey (Xored By Key): Quá trình này chỉ là việc XOR khóa con và cho kết quả của vòng hiện hành.
Vòng cuối cùng chỉ thi hành việc chuyển đổi: SubByte.
ShiftRow. AddRoundKey.
2.2.3.2. Phân phối khóa bí mật
Vấn đề an toàn trong dùng khóa đối xứng là vấn đề rất quan trọng vì khóa yêu cầu giữ bí mật tuyệt đối, nếu khóa bị lộ coi như toàn bộ thông tin bị lộ. An toàn trong dùng khóa đối xứng liên quan mật thiết tới vấn đề phân phối khóa. Sơ đồ khóa đối xứng đòi hỏi cả hai đối tác chia sẻ khóa bí mật chung.
Với hai đối tác A và B cần thực hiện chia sẻ thông tin thì có cách phân phối khóa bí mật như sau:
A lựa chọn khóa bí mật và truyền cho B.
Đối tác thứ ba chọn khóa và phân phối cho A và B.
A và B có thể thống nhất dùng khóa trước để mã khóa mới.
A và B trao đổi với một đối tác thứ ba C và C chuyển tiếp giữa A và B.
Phân loại khóa: Có hai loại chính là khóa phiên và khóa chính.
- Khóa phiên: Là khóa tạm thời dùng để mã hóa dữ liệu giữa nhóm người dùng cho một phiên logic sau đó bị hủy.
- Khóa chính: Là khóa dùng để mã hóa các khóa phiên chia sẻ giữa người dùng và trung tâm phân phối khóa.