LINUX.ORG.RU

Помогите студенту реализовать ГОСТ 28147-89 (только ECB), пожалуйста

 , ,


0

1

Решено: Спасибо тов. dataman! Буду изучать исходники.

[текст ниже удалён т.к. ненужно]



Последнее исправление: Tpybodyp (всего исправлений: 4)

Уфффф… это не Го. Это какой-то бред препода на стероидах.

Даже не знаю, где начать…

Начнём, хотя бы с того – убери все глобальные переменные.

Далее. Читать файл – это весело и так далее, но практичнее и проще их просто зашить – они не меняются так часто:

var sbox = [8][16]uint8{
	{9, 6, 3, 2, 8, 11, 1, 7, 10, 4, 14, 15, 12, 0, 13, 5},
	{3, 7, 14, 9, 8, 10, 15, 0, 5, 2, 6, 12, 11, 4, 13, 1},
	{14, 4, 6, 2, 11, 3, 13, 8, 12, 15, 5, 10, 0, 7, 1, 9},
	{14, 7, 10, 12, 13, 1, 3, 9, 0, 2, 11, 4, 15, 8, 5, 6},
	{11, 5, 1, 9, 8, 13, 15, 0, 14, 4, 2, 3, 12, 7, 10, 6},
	{3, 10, 13, 12, 1, 2, 0, 11, 7, 5, 9, 4, 8, 15, 14, 6},
	{1, 13, 2, 9, 7, 10, 6, 0, 8, 12, 4, 5, 15, 3, 11, 14},
	{11, 10, 15, 5, 0, 12, 14, 8, 6, 2, 3, 9, 1, 7, 13, 4},
}

Далее. Где тесты? Пример input/output хотя бы. Но лучше тесты.

Далее. Имплементируй интерфейс cipher.Block вместо printf в майн.

Далее пытаюсь вкурить что дальше …

Править – не переправить… глянь чтоли тут для начала https://github.com/martinlindhe/gogost/tree/master/gost28147 чтобы хотя бы понять, как делать правильно. А дальше уже под себя строй.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 2)
Ответ на: комментарий от beastie

Спасибо за помощь! Буду читать по ссылкам.

Уфффф… это не Го. Это какой-то бред препода на стероидах.

Ну, собственно, да. Препод большую часть года либо болела, либо работала с другими группами, т.ч. я понятия не имею, что я делаю. + опять сам простудился.

Tpybodyp
() автор топика