Мелкие правки
This commit is contained in:
parent
2c3625c389
commit
ef283e837d
18
main.c
18
main.c
|
@ -47,9 +47,11 @@ void X(chunk a, chunk b, chunk c)
|
|||
// Функция S
|
||||
void S(chunk in_out)
|
||||
{
|
||||
// Счетчик
|
||||
int i;
|
||||
// Переход к представлению в байтах
|
||||
uint8_t *byte = (int8_t*) in_out;
|
||||
for (int i = 0; i < KUZNECHIK_BLOCK_SIZE; i++)
|
||||
for (i = 0; i < KUZNECHIK_BLOCK_SIZE; i++)
|
||||
{
|
||||
byte[i] = Pi[byte[i]];
|
||||
}
|
||||
|
@ -75,11 +77,13 @@ uint8_t GF_mult(uint8_t a, uint8_t b)
|
|||
// Функция R
|
||||
void R(uint8_t *in_out)
|
||||
{
|
||||
// Счетчик
|
||||
int i;
|
||||
// Аккумулятор
|
||||
uint8_t acc = in_out[15];
|
||||
// Переход к представлению в байтах
|
||||
uint8_t *byte = (int8_t*) in_out;
|
||||
for (int i = 14; i >= 0; i--)
|
||||
for (i = 14; i >= 0; i--)
|
||||
{
|
||||
byte[i + 1] = byte[i];
|
||||
acc ^= GF_mult(byte[i], linear_vector[i]);
|
||||
|
@ -90,7 +94,9 @@ void R(uint8_t *in_out)
|
|||
// Функция L
|
||||
void L(uint8_t* in_out)
|
||||
{
|
||||
for (int i = 0; i < KUZNECHIK_BLOCK_SIZE; i++)
|
||||
// Счетчик
|
||||
int i;
|
||||
for (i = 0; i < KUZNECHIK_BLOCK_SIZE; i++)
|
||||
R(in_out);
|
||||
}
|
||||
|
||||
|
@ -160,11 +166,13 @@ void gen_round_keys(uint8_t* key, chunk* round_keys)
|
|||
// Поддерживает запись результата в исходный массив
|
||||
void kuznechik_encrypt(chunk *round_keys, chunk in, chunk out)
|
||||
{
|
||||
// Счетчик
|
||||
int i;
|
||||
chunk p;
|
||||
// Создадим копию входных данных
|
||||
memcpy(p, in, sizeof(chunk));
|
||||
// В течении 10 итераций
|
||||
for (int i = 0; i < 10; i++)
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
// Преобразование X
|
||||
X(p, round_keys[i], p);
|
||||
|
@ -198,7 +206,7 @@ int main(int argc, char *argv[])
|
|||
0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff,
|
||||
0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,
|
||||
0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10,
|
||||
0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
|
||||
0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef
|
||||
};
|
||||
|
||||
// Итерационные ключи
|
||||
|
|
Loading…
Reference in New Issue