LINUX.ORG.RU

F(два массива случайных чисел) = секретный ключ

 


0

1

Сабж, надо имея два массива случайных чисел (байт) сгенерировать секретный ключ

нюанс в том что суммарная длина массивов не равна длине ключа

пока в голову приходит https://tools.ietf.org/html/rfc5869 (HKDF)

есть ли потенциальные проблемы с таким подходом?

★★★★★

нюанс в том что суммарная длина массивов не равна длине ключа

меньше длины ключа?

Harald ★★★★★ ()

Сабж, надо имея два массива случайных чисел (байт)

а откуда ты их взял?

Harald ★★★★★ ()
Ответ на: комментарий от Harald

и это тоже может быть, суть в том что два клиента генерируют куски ключа, потом обмениваются, при том на этапе генерации еще не известны настройки шифрования (в т.ч. длина ключа)

subwoofer ★★★★★ ()
Ответ на: комментарий от subwoofer

зачем ты изобретаешь свой криптопротокол, когда есть TLS 1.2?

А ключ можно сделать, склеив два массива последовательно и взяв хэш

Harald ★★★★★ ()
Ответ на: комментарий от Harald

затем что кроме tcp существуют еще протоколы 8)

а хеш имеет постоянную длину и не факт что такую же как и ключ

subwoofer ★★★★★ ()
Последнее исправление: subwoofer (всего исправлений: 1)

А почему ты функцию подбираешь под случайное число, а не наоборот? Ты уверен что числа случайные? Или у тебя железка их в таком виде выдает?

ieeya ()

echo $a$b | sha1sum

Или я что-то не так понял?

KillTheCat ★★★★★ ()
Ответ на: комментарий от KillTheCat

а есди длина хеша меня не устраивает (т.е. требуется больше?)

subwoofer ★★★★★ ()
Ответ на: комментарий от subwoofer

Длинна ключа или твоих массивов?
Если первое - а зачем длиннее? Максимальноэффективная длинна хеша зависит от алгоритма который его будет юзать. Если нужно длиннее используй другой алгоритм.

Можно просто взять оба твоих массива, преобразовать в 16-тиричное представление, обрезать сколько надо и получить свой секретный ключ. Если массивы длинные и действительно случайные.

KillTheCat ★★★★★ ()
Ответ на: комментарий от subwoofer

Да то что алгоритмы генерации секретных ключей подразумевают случайное число. Зачем тебе нужно именно в формате «два массива случайных чисел, суммарная длина массивов не равна длине ключа». Почему бы не использовать такие случайные числа, которые принимает алгоритм, который ты выберешь.

ieeya ()
Ответ на: комментарий от subwoofer

А что, длина ключа у тебя рандомна и совершенно непредсказуема? )

Harald ★★★★★ ()
Ответ на: комментарий от KillTheCat

Если нужно длиннее используй другой алгоритм.

какой алгоритм использовать для 512 байтного ключа?

оба твоих массива, преобразовать в 16-тиричное представление

зачем массивы байтов преобразовывать в строку?

subwoofer ★★★★★ ()
Ответ на: комментарий от subwoofer

нельзя такое юзверю доверять, он по дефолту идиот ) Разве что несколько фиксированных значений из списка

Harald ★★★★★ ()
Ответ на: комментарий от subwoofer

Не проще и безопаснее ли генерировать секретный ключ опреденённого размера и уже его шифровать юзерским паролем, как делают нормальные люди?

fmdw ()
Ответ на: комментарий от Harald

по дефолту там 16 байт, но надо предусмотреть в протоколе возможность любых вариантов, а соотв. закрепить механизм генерации ключа

subwoofer ★★★★★ ()
Ответ на: комментарий от subwoofer

суть в том что два клиента генерируют куски ключа, потом обмениваются

Даже боюсь предположить зачем это нужно

ieeya ()
Ответ на: комментарий от subwoofer

зачем массивы байтов преобразовывать в строку?

Что-бы получить строку и использовать ее как секретный ключ.

какой алгоритм использовать для 512 байтного ключа?

PBKDF2? А зачем такой длинный ключ?

KillTheCat ★★★★★ ()
Ответ на: комментарий от fmdw

какой пароль, какие нормальные люди используют пароль если есть нормальные добрые приватные RSA ключи для этого?

генерацию разбивают на два источника скорее всего для улучшения энтропии - так она собирается с обоих машин

subwoofer ★★★★★ ()
Ответ на: комментарий от subwoofer

Эти ключи иногда шифруют с паролем, чтоб так просто не скопировали. // я читал тред не сначала, поэтому ответил невпопад.

fmdw ()
Ответ на: комментарий от subwoofer

генерацию разбивают на два источника скорее всего для улучшения энтропии - так она собирается с обоих машин

Делать a ^ b и обрезать на длину ключа.

ieeya ()
Ответ на: комментарий от KillTheCat

PBKDF2? А зачем такой длинный ключ?

это алгоритм для паролей, для ключей я описал выше, и просил рассказать зачем оно такое мудрое

subwoofer ★★★★★ ()
Ответ на: комментарий от ieeya

Делать a ^ b

и как это удлинит данные до размера ключа?

subwoofer ★★★★★ ()
Ответ на: комментарий от subwoofer

Суммарная длина массивов меньше чем длина ключа?

ieeya ()
Ответ на: комментарий от subwoofer

Ну я же не знаю какой длинны у тебя массивы, раз они короче ключа почему бы нет?

и как это удлинит данные до размера ключа?

Если массивы ты получаешь сам, что мешает сделать их длиннее?

KillTheCat ★★★★★ ()
Ответ на: комментарий от subwoofer

генерацию разбивают на два источника скорее всего для улучшения энтропии - так она собирается с обоих машин

Объединять каким-то образом энтропию с двух физически раздёлённых хостов — идея дурацкая на первый взгляд. Потому что её придётся гонять либо по открытому каналу, либо по шифрованному ключом k0. Надёжность полученного ключа будет порядка k0. Либо объясни более подробно, что хочешь делать.

fmdw ()

Какой бы подход ты ни выбрал, если длина входных данных меньше требуемого размера ключа, перебор можно будет делать по этим данным. Так что бессмысленно, IMHO.

intelfx ★★★★★ ()
Ответ на: комментарий от intelfx

если функция, вычисляющая ключ, достаточно процессорожручая, то вовсе не факт, что перебор по ключу будет тогда медленнее

Harald ★★★★★ ()

ТС, а ты матчасть по криптографии хорошо изучил? Шнайера там, других аффтаров...

Harald ★★★★★ ()

ты про какой секретный ключ говоришь, для RSA?

Harald ★★★★★ ()
Ответ на: комментарий от Harald

возможно поэтому и применяют HKDF вместо того что тут предлагали колхозить

subwoofer ★★★★★ ()
Ответ на: комментарий от Harald

за время этого треда я покрылся фейспалмами в три слоя

вот тут я написал F(два массива случайных чисел) = секретный ключ (комментарий) что RSA ключи у меня уже есть, зачем бы я спрашивал как их генерить и кидался ссылками на генерацию _симметричного_ ключа?

subwoofer ★★★★★ ()
Ответ на: комментарий от subwoofer

ну так называл бы тему правильно, «генерация ключа для симметричного алгоритма шифрования»

Harald ★★★★★ ()
Ответ на: комментарий от subwoofer

Поиск телепатов оказался неудачным.

anonymous ()
Ответ на: комментарий от post-factum

он не подходит, там нагородили кучу всякой радости отчего для передачи одного сообщения надо сначала осуществить handshake, а у меня большую часть времени передается одно сообщение

и мне нужно чтобы часть сообщения была не закодирована но подписана

subwoofer ★★★★★ ()
Ответ на: комментарий от Harald

pre_master_secret там тоже из гсч, потом все это вместе со строкой попадает в PRF (которая также умеет выдачать произвольную длину) что напоминает HKDF и тут опять вопрос из топика: зачем там так, зачем потом HKDF и какие проблемы.

subwoofer ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.