Мелкие правки
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
|
// Функция S
|
||||||
void S(chunk in_out)
|
void S(chunk in_out)
|
||||||
{
|
{
|
||||||
|
// Счетчик
|
||||||
|
int i;
|
||||||
// Переход к представлению в байтах
|
// Переход к представлению в байтах
|
||||||
uint8_t *byte = (int8_t*) in_out;
|
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]];
|
byte[i] = Pi[byte[i]];
|
||||||
}
|
}
|
||||||
|
@ -75,11 +77,13 @@ uint8_t GF_mult(uint8_t a, uint8_t b)
|
||||||
// Функция R
|
// Функция R
|
||||||
void R(uint8_t *in_out)
|
void R(uint8_t *in_out)
|
||||||
{
|
{
|
||||||
|
// Счетчик
|
||||||
|
int i;
|
||||||
// Аккумулятор
|
// Аккумулятор
|
||||||
uint8_t acc = in_out[15];
|
uint8_t acc = in_out[15];
|
||||||
// Переход к представлению в байтах
|
// Переход к представлению в байтах
|
||||||
uint8_t *byte = (int8_t*) in_out;
|
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];
|
byte[i + 1] = byte[i];
|
||||||
acc ^= GF_mult(byte[i], linear_vector[i]);
|
acc ^= GF_mult(byte[i], linear_vector[i]);
|
||||||
|
@ -90,7 +94,9 @@ void R(uint8_t *in_out)
|
||||||
// Функция L
|
// Функция L
|
||||||
void L(uint8_t* in_out)
|
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);
|
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)
|
void kuznechik_encrypt(chunk *round_keys, chunk in, chunk out)
|
||||||
{
|
{
|
||||||
|
// Счетчик
|
||||||
|
int i;
|
||||||
chunk p;
|
chunk p;
|
||||||
// Создадим копию входных данных
|
// Создадим копию входных данных
|
||||||
memcpy(p, in, sizeof(chunk));
|
memcpy(p, in, sizeof(chunk));
|
||||||
// В течении 10 итераций
|
// В течении 10 итераций
|
||||||
for (int i = 0; i < 10; i++)
|
for (i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
// Преобразование X
|
// Преобразование X
|
||||||
X(p, round_keys[i], p);
|
X(p, round_keys[i], p);
|
||||||
|
@ -198,7 +206,7 @@ int main(int argc, char *argv[])
|
||||||
0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff,
|
0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff,
|
||||||
0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,
|
0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,
|
||||||
0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10,
|
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