Secara garis besar, algoritma enkripsi GOST terdiri atas lima tahap:
1. Pemrosesan kunci.
Password atau kunci eksternal yang dimasukkan oleh pengguna diproses untuk menghasilkan delapan buah kunci internal yang
kemudian dijadwalkan penggunaannya untuk 32 putaran enkripsi.
2. Pemrosesan awal plaintext.
Pesan atau plaintext yang dimasukkan oleh pengguna diubah ke bentuk biner dan dibagi ke dalam dua blok,
yaitu blok left (L0) dan blok right (R0).
3. Putaran enkripsi ke-1 s.d. ke-31.
Proses putaran enkripsi GOST berupa Jaringan Feistel, yang berarti output dari satu putaran akan menjadi input bagi
putaran berikutnya. Secara matematis, satu putaran ke-i enkripsi GOST dideskripsikan dengan:
Untuk 0<i<32
Li = Ri-1
Ri = Li-1 ⊕ f(Ri-1, Ki)
Fungsi f merupakan sebuah fungsi yang menerima Ri-1 dan Ki sebagai input dan menghasilkan output berupa deret biner sepanjang 32 bit. Fungsi f terdiri atas tiga langkah, yaitu:
- Operasi (Ri-1 + Ki) mod 232
- Permutasi dengan S-Box
- Pergeseran sirkuler bit ke kiri sebanyak 11 bit
4. Putaran enkripsi ke-32.
Putaran terakhir memiliki sedikit perbedaan yang secara matematis dideskripsikan dengan:
Untuk i=32
Li = Li-1 ⊕ f(Ri-1, Ki)
Ri = Ri-1
5. Pemrosesan akhir ciphertext.
Blok left dan blok right terakhir (L32 dan R32) digabungkan untuk menghasilkan
ciphertext, dan kemudian dikonversi dari biner menjadi karakter.