Красная щука (шифр) - Red Pike (cipher)
Красная щука это классифицированный объединенное Королевство правительственный алгоритм шифрования, предложенный для использования Национальный центр здоровья к GCHQ, но предназначен для "широкого спектра приложений в Британское правительство " [1]. Мало что известно о Красной Щуке, кроме того, что это блочный шифр с 64-битным размер блока и 64-битный длина ключа. Согласно академическому исследованию шифра, цитируемому ниже и цитируемому в статье Росс Андерсон и Маркус Кун, он "использует те же основные операции, что и RC5 "(сложение, XOR и сдвиг влево) и" не имеет таблиц поиска, практически не имеет расписания ключей и требует только пяти строк кода ";" влияние каждого бита ключа быстро каскадируется "и" каждое шифрование связано с порядком 100 операций ».
Red Pike доступен утвержденным британским государственным подрядчикам в форме программного обеспечения для использования в конфиденциальных (не секретных) правительственных системах связи. GCHQ также разработал Рамбутан криптосистема для того же сегмента.
Учитывая, что Red Pike - это британский алгоритм шифрования, его название, вероятно, относится к определенному упал в западной части английского озерного края.
Предполагаемый исходный код
В феврале 2014 года предполагаемый исходный код Red Pike был размещен в Шифропанк список рассылки.[1]
/ * Исходный код шифра Red Pike * / #включают <stdint.h> typedef uint32_t слово; #define CONST 0x9E3779B9 #define РАУНДЫ 16 #define ROTL (X, R) (((X) << ((R) & 31)) | ((X) >> (32 - ((R) & 31)))) #define ROTR (X, R) (((X) >> ((R) & 31)) | ((X) << (32 - ((R) & 31)))) пустота зашифровать(слово * Икс, const слово * k) { беззнаковый int я; слово rk0 = k[0]; слово rk1 = k[1]; за (я = 0; я < РАУНДЫ; я++) { rk0 += CONST; rk1 -= CONST; Икс[0] ^= rk0; Икс[0] += Икс[1]; Икс[0] = ROTL(Икс[0], Икс[1]); Икс[1] = РОТР(Икс[1], Икс[0]); Икс[1] -= Икс[0]; Икс[1] ^= rk1; } rk0 = Икс[0]; Икс[0] = Икс[1]; Икс[1] = rk0; } пустота расшифровать(слово * Икс, const слово * k) { слово dk[2] = { k[1] - CONST * (РАУНДЫ + 1), k[0] + CONST * (РАУНДЫ + 1) }; зашифровать(Икс, dk); }
Смотрите также
Рекомендации
- ^ "Шифр красной щуки", Шифр Red Pike, список рассылки Cypherpunk, Gmane
- Ч. Митчелл, С. Мерфи, Ф. Пайпер, П. Уайлд. (1996). Красная щука - оценка. Codes and Ciphers Ltd 2.10.96.
- Статья Андерсона и Куна, которая включает выдержки из (Mitchell et al., 1996). Другая версия Андерсон, Росс; Кун, Маркус (1997). «Недорогие атаки на устройства с защитой от взлома» (pdf). Протоколы безопасности, 5-й международный семинар. С. 125–136.
- «Использование шифрования и связанных услуг с NHSnet»