Chuẩn mã dƣ̃ liệu Xô-Viết

Một phần của tài liệu thiết kế hệ thống mã khối bằng công nghệ fpga (Trang 32 - 34)

Mô tả chi tiết của t huật toán mã hoá Xô -Viết (GOST) đã đƣợc công bố trong GOST 28147-89. Thuật toán GOST là một ví dụ của hệ mật kiểu DES cùng với lịch trình khoá đƣợc đơn giản hoá tối đa , là một trong những kiểu đặc trƣng của hệ mã khối sƣ̉ dụng cấu trúc Feistel với hạt nhân là các hộp thế , phép dịch vòng , kết hợp với các phép toán số học nhƣ phép XOR và phép cộng môdulo . Mô hình mã hoá - giải mã dữ liệu của GOST cũng gần tƣơng tự nhƣ DES , tuy nhiên nó mã bản rõ có độ dài 64 bít thành bản mã có độ dài 64 bit khóa có độ dài 256 bit.

Mô tả thuật toán GOST nhƣ sau:

Thuật toán GOST gồm 32 vòng l ặp. Mỗi vòng lặp đƣợc chỉ ra ở hình 1.8. Có hai phần tƣ̉ là bí mật trong thuật toán này : khóa mã K có độ dài 256-bit và định

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

nghĩa các S-box S1,…, S8.

Khóa mật mã K = (K0, …, K7) đƣợc lƣu trƣ̃ trong thiết bị lƣu trƣ̃ khóa (key storage unit-KSU) nhƣ một dãy của 8 tƣ̀ 32-bit (K0, …, K7). Mỗi tƣ̀ khoá 32-bit Ki đƣợc gọi là khóa thành phần (i=0,…,7). Để mã một văn bản 64-bit, trƣớc hết nó đƣợc chia thành 2 nƣ̉a 32-bit và đƣợc đặt vào thanh ghi 32-bit R1 và R2. Nội dung của thanh ghi R 1 đƣợc cộng theo modulo 232 vào thành khóa thà nh phần K0 (bộ cộng CM1), tƣ́c là R1+K0 (mod 232). Dãy thu đƣợc 32 bit đƣợc chia thành 8 khối 4 bit, 8 khối 4 bit này là đầu vào của 8 S-box tƣơng ƣ́ng S1,…, S8. Mỗi Si, i=1,…,8 là một phép hoán vị . 8 đầu ra 4-bit của các S -box đƣợc lƣu vào thanh ghi dịch R , nội dungcủa thanh này đƣợc dịch trái 11 bit (về phía bit bậc cao). Nội dung của thanh R bây giờ đƣợc cộng modulo 2 (Exclusive-Or hoặc XOR ) với nội dung của thanh ghi R2 bằng bộ cộng CM2. Nội dung tƣ̀ sẽ đƣợc lƣu trong R1 và giá trị cũ của R 1 đƣợc lƣu trƣ̃ trong R2 và đến đây kết thúc vòng lặp thứ nhất.

Các vòng lặp khác tƣơng tự nhƣ vòng lặp thứ nhất . Trong vòng lặp thƣ́ hai , chúng ta sử dụng khóa K 1 tƣ̀ KSU. Các vòng lặ p thƣ́ 3, 4, 5, 6, 7, 8 sƣ̉ dụng tƣơng ứng các khoá thành phần K 2, K3, …, K7. Các vòng lặp từ 9 đến 16 và từ 17 đến 24 cũng sử dụng các khoá thành phần này . Các vòng lặp từ 25 đến 32 sƣ̉ dụng các khoá thành phần theo thứ tự ngƣợc lại, tƣ́c là vòng lặp thƣ́ 25 sƣ̉ dụng khóa K7, vòng lặp thƣ́ 26 sƣ̉ dụng khóa K6 và cứ tiếp tục nhƣ vậy . Vòng lặp cuối cùng dùng khóa K 0. Cho nên thƣ́ tƣ̣ của các khóa thành phần trong 32 vòng lặp là:

K0 ,…., K7, K0 ,…., K7, K0 ,…., K7, K7 ,…., K0.

Sau 32 vòng lặp, đầu ra tƣ̀ bộ cộng CM2 đƣợc đặt trong R2, còn R1 giƣ̃ nguyên giá trị cũ. Nội dung của thanh ghi R1 và R2 là bản mã 64-bit cho bản rõ có 64-bit.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn R2 R1 + S1 ….. S8 R + R1 R2 K0 …… K7 K S CM1 CM2 KSU

Hình 1.8: Sơ đồ một vòng lặp của GOST.

Một phần của tài liệu thiết kế hệ thống mã khối bằng công nghệ fpga (Trang 32 - 34)

Tải bản đầy đủ (PDF)

(126 trang)