-
Build:
-
go build -o gost2file gost2-128-cbc.go
-
Usage:
-
./gost2file c <input_file> -> produces <input_file>.gost2
-
./gost2file d <input_file> -> removes .gost2 suffix if present, else appends .dec
-
Build:
-
go build -o gost2gcm gost2-128-gcm.go
-
Usage:
-
./gost2gcm c <input_file> -> produces <input_file>.gost2
-
./gost2gcm d <input_file> -> removes .gost2 suffix if present, else appends .dec
GOST 2-128 was released in 2016. It has exactly the same design as GOST but has twice as many S-tables and uses 64-bit integers instead of 32-bit integers. It no longer works on 64-bit blocks but on 128-bit blocks like AES. The two S-tables are those of the Central Bank of Russian Federation and that of the GOST R 34.12-2015 standard. GOST had 256-bit keys that were reused as subkeys. In GOST 2-128, subkeys are generated by a one-way hash function, representing 4096 bits. Thus, no weak keys exist and attacks against GOST do not work in GOST 2-128.