+ S2 … S1 4 …… R2 KSU R2 R1 R CM2 S R1 K0 K7 K CM1
Hình 1. Đƣờng đi của dữ liệu trong một vòng mã/dịch của GOST Thuật toán gồm 32 vòng lặp, (hai lần nhiều hơn DES). Mỗi vòng lặp đƣợc chỉ ra ở hình 1. Có 2 phần tử bí mật là khóa mật mã K 256 bit gồm 8 từ 32 bit lƣu KSU, và hộp 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 (KSU- key storage unit) nhƣ một dãy của 8 từ 32 bit (K0,..., K7). Mỗi từ khóa 32 bit Ki đƣợc gọi khóa thành phần (i=0,....,7). Để mã bản rõ 64 bit, trƣớc hết nó đƣợc chia bản rõ ra làm 2 nửa 32 bit và đƣợc đặt vào thanh ghi R1và R2. Nội dung
của thanh ghi đƣợc cộng theo modulo 232
vào khóa thành phần K0 (bộ cộng CM1), tức là: R1+K0(mod 232).
Dãy thu đƣợc chia 8 khối 4 bit. 8 khối 4 bit này là đầu vào của hộp S-box tƣơng ứng S1,..., S8. Mỗi Si là một hoán vị, 8 đầu ra khối 4 bit của hộp S-box đƣợc lƣu trong thanh ghi dịch R, nội dung thanh ghi này dịch trái 11 bit cao(về phía bit bậc cao). Nội dung của thanh ghi R bây giờ đƣợc cộng modulo 2 với nội dung thanh ghi R2 bằng bộ cộng CM2. Nội dung từ sẽ đƣợc lƣu trong R1 và giá trị cũ đƣợc lƣu trong R2. Đế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 thứ nhất. Trong vòng lặp thứ 2, chúng ta sử dụng khóa k1 từ KSU. Các vòng lặp thứ 3, 4, 5, 6, 7, 8 sử dụng tƣơng ứng các khóa thành phần k2, k3,..., k7. Các vòng lặp thứ 9 đến 16 và từ 17 đến 24 cũng sử dụng các khóa thành phần này. Các vòng lặp 25 đến 32 sử dụng khóa 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 k0. 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 các thanh ghi R1 và R2 là bản mã 64 bit cho bản rõ có 64 bit.