Сообщение Re[6]: Подружить ChaCha20 с ключами разной длины от 15.01.2024 6:14
Изменено 15.01.2024 6:16 TheBeginner
Re[6]: Подружить ChaCha20 с ключами разной длины
Здравствуйте, CreatorCray, Вы писали:
TB>>Возможно это и так. Интересно что будет если "добрать" до 256 открытыми байтами.
CC>Мда. С таким уровнем теоретической подготовки лучше не трогать криптографию — сделаешь только хуже
Да вопрос то теоретический больше. Конечно, если есть ограничение по длине ключа скажем 56 бит то лучше просто взять DES (В Америке как и в России как понимаю такие же правила к экспортному контролю, даже для бесплатной фривары https://www.bis.doc.gov/index.php/policy-guidance/encryption?)
В этой реализации при kbits == 128 ключ копируется при инициализации input. Какие еще варианты могут быть чтобы сказать, что ключ формально отвечает заданной разрядности. Подмешивать известные байты в input, что то еще. Повторяю — вопрос теоретический.
И если вы знаете алгоритм шифрования эквивалентный стойкости с AES при одинаковой длине ключа, но позволяющий задавать ключи произвольной длины — напишите.
Я профессионально криптографией не занимаюсь, мне просто интересно
TB>>Возможно это и так. Интересно что будет если "добрать" до 256 открытыми байтами.
CC>Мда. С таким уровнем теоретической подготовки лучше не трогать криптографию — сделаешь только хуже
Да вопрос то теоретический больше. Конечно, если есть ограничение по длине ключа скажем 56 бит то лучше просто взять DES (В Америке как и в России как понимаю такие же правила к экспортному контролю, даже для бесплатной фривары https://www.bis.doc.gov/index.php/policy-guidance/encryption?)
В этой реализации при kbits == 128 ключ копируется при инициализации input. Какие еще варианты могут быть чтобы сказать, что ключ формально отвечает заданной разрядности. Подмешивать известные байты в input, что то еще. Повторяю — вопрос теоретический.
И если вы знаете алгоритм шифрования эквивалентный стойкости с AES при одинаковой длине ключа, но позволяющий задавать ключи произвольной длины — напишите.
Я профессионально криптографией не занимаюсь, мне просто интересно
void ECRYPT_keysetup(ECRYPT_ctx *x,const u8 *k,u32 kbits,u32 ivbits)
{
const char *constants;
x->input[4] = U8TO32_LITTLE(k + 0);
x->input[5] = U8TO32_LITTLE(k + 4);
x->input[6] = U8TO32_LITTLE(k + 8);
x->input[7] = U8TO32_LITTLE(k + 12);
if (kbits == 256) { /* recommended */
k += 16;
constants = sigma;
} else { /* kbits == 128 */
constants = tau;
}
x->input[8] = U8TO32_LITTLE(k + 0);
x->input[9] = U8TO32_LITTLE(k + 4);
x->input[10] = U8TO32_LITTLE(k + 8);
x->input[11] = U8TO32_LITTLE(k + 12);
x->input[0] = U8TO32_LITTLE(constants + 0);
x->input[1] = U8TO32_LITTLE(constants + 4);
x->input[2] = U8TO32_LITTLE(constants + 8);
x->input[3] = U8TO32_LITTLE(constants + 12);
}
Re[6]: Подружить ChaCha20 с ключами разной длины
Здравствуйте, CreatorCray, Вы писали:
TB>>Возможно это и так. Интересно что будет если "добрать" до 256 открытыми байтами.
CC>Мда. С таким уровнем теоретической подготовки лучше не трогать криптографию — сделаешь только хуже
Да вопрос то теоретический больше. Конечно, если есть ограничение по длине ключа скажем 56 бит то лучше просто взять DES (В Америке как и в России как понимаю такие же правила к экспортному контролю, даже для бесплатной фривары https://www.bis.doc.gov/index.php/policy-guidance/encryption?)
В этой реализации при kbits == 128 ключ копируется при инициализации input. Какие еще варианты могут быть чтобы сказать, что ключ формально отвечает заданной разрядности. Подмешивать известные байты в input, что то еще. Повторяю — вопрос теоретический.
И если вы знаете алгоритм шифрования эквивалентный стойкости с AES и желательно выше по скорости при софтверной реализации при одинаковой длине ключа, но позволяющий задавать ключи произвольной длины — напишите.
Я профессионально криптографией не занимаюсь, мне просто интересно
TB>>Возможно это и так. Интересно что будет если "добрать" до 256 открытыми байтами.
CC>Мда. С таким уровнем теоретической подготовки лучше не трогать криптографию — сделаешь только хуже
Да вопрос то теоретический больше. Конечно, если есть ограничение по длине ключа скажем 56 бит то лучше просто взять DES (В Америке как и в России как понимаю такие же правила к экспортному контролю, даже для бесплатной фривары https://www.bis.doc.gov/index.php/policy-guidance/encryption?)
В этой реализации при kbits == 128 ключ копируется при инициализации input. Какие еще варианты могут быть чтобы сказать, что ключ формально отвечает заданной разрядности. Подмешивать известные байты в input, что то еще. Повторяю — вопрос теоретический.
И если вы знаете алгоритм шифрования эквивалентный стойкости с AES и желательно выше по скорости при софтверной реализации при одинаковой длине ключа, но позволяющий задавать ключи произвольной длины — напишите.
Я профессионально криптографией не занимаюсь, мне просто интересно
void ECRYPT_keysetup(ECRYPT_ctx *x,const u8 *k,u32 kbits,u32 ivbits)
{
const char *constants;
x->input[4] = U8TO32_LITTLE(k + 0);
x->input[5] = U8TO32_LITTLE(k + 4);
x->input[6] = U8TO32_LITTLE(k + 8);
x->input[7] = U8TO32_LITTLE(k + 12);
if (kbits == 256) { /* recommended */
k += 16;
constants = sigma;
} else { /* kbits == 128 */
constants = tau;
}
x->input[8] = U8TO32_LITTLE(k + 0);
x->input[9] = U8TO32_LITTLE(k + 4);
x->input[10] = U8TO32_LITTLE(k + 8);
x->input[11] = U8TO32_LITTLE(k + 12);
x->input[0] = U8TO32_LITTLE(constants + 0);
x->input[1] = U8TO32_LITTLE(constants + 4);
x->input[2] = U8TO32_LITTLE(constants + 8);
x->input[3] = U8TO32_LITTLE(constants + 12);
}