blackfin 81 May 10, 2024 Posted May 10, 2024 · Report post On 5/10/2024 at 5:41 PM, mplata said: А если после ксора будут одинаковые ключи? Вероятность этого очень мала.. Quote Share this post Link to post Share on other sites More sharing options...
mplata 10 May 10, 2024 Posted May 10, 2024 · Report post Just now, blackfin said: У xor'а нет никаких ключей. Это булева операция - "исключающее или": a = b^c. Я про то что мы ксорим две части ключа и получаем половинный ключ (нужной длины). Затем с новым ключом делаем тоже самое. И так далее. Так вот не получится ли что в новой отксоренной последовательности встретятся одинаковые ключи? Quote Share this post Link to post Share on other sites More sharing options...
blackfin 81 May 10, 2024 Posted May 10, 2024 · Report post On 5/10/2024 at 5:45 PM, mplata said: Я про то что мы ксорим две части ключа и получаем половинный ключ (нужной длины). Затем с новым ключом делаем тоже самое. И так далее. Так вот не получится ли что в новой отксоренной последовательности встретятся одинаковые ключи? Вероятность такого совпадения равна: 2−128. Quote Share this post Link to post Share on other sites More sharing options...
mplata 10 May 10, 2024 Posted May 10, 2024 · Report post 1 minute ago, blackfin said: Вероятность такого совпадения равна: 2−128. А в SHA-3 эта вероятность получается 2^-256? Неужели нет алгоритма в котором первые 10^8 не повторяются гарантированно? Quote Share this post Link to post Share on other sites More sharing options...
blackfin 81 May 10, 2024 Posted May 10, 2024 · Report post On 5/10/2024 at 5:51 PM, mplata said: А в SHA-3 эта вероятность получается 2^-256? Да, если использовать все 256 бит. On 5/10/2024 at 5:51 PM, mplata said: Неужели нет алгоритма в котором первые 10^8 не повторяются гарантированно? В любом поле Галуа GF(2^N) на основе примитивного полинома степени N первые 2^N не повторяются гарантированно. Для N = 28 это дает период повторения примерно равный: 2.68*10^8. Quote Share this post Link to post Share on other sites More sharing options...
mplata 10 May 10, 2024 Posted May 10, 2024 · Report post 27 minutes ago, blackfin said: Да, если использовать все 256 бит. В любом поле Галуа на основе примитивного полинома степени N первые 2^N-1 не повторяются гарантированно. Для N = 28 это дает период повторения: 2.68*10^8. А есть где то почитать про это? И примеры построения таких последовательностей. Quote Share this post Link to post Share on other sites More sharing options...
blackfin 81 May 10, 2024 Posted May 10, 2024 · Report post On 5/10/2024 at 6:33 PM, mplata said: А есть где то почитать про это? И примеры построения таких последовательностей. Р. Блейхут, "Теория и практика кодов, контролирующих ошибки", Мир, 1986. 1 Quote Share this post Link to post Share on other sites More sharing options...
artemkad 179 May 10, 2024 Posted May 10, 2024 · Report post 57 минут назад, mplata сказал: А в SHA-3 эта вероятность получается 2^-256? Неужели нет алгоритма в котором первые 10^8 не повторяются гарантированно? Выдели из 28 из 128 бит на счетчик(1,2,...100000000), а остальные 100 бит на абсолютно любое случайное число и повторений не предвидится Quote Share this post Link to post Share on other sites More sharing options...
firstvald 51 May 10, 2024 Posted May 10, 2024 · Report post если код генерируется в одном месте как страховка запоминать те коды которые уже были заданы. коллеги делали хешем и особо не заморачивались Quote Share this post Link to post Share on other sites More sharing options...
jcxz 361 May 11, 2024 Posted May 11, 2024 · Report post 13 часов назад, blackfin сказал: Для N = 28 это дает период повторения примерно равный: 2.68*10^8. Что примерно на 100 десятичных порядков меньше чем у "Вихря Мерсенна". 14 часов назад, blackfin сказал: Вероятность такого совпадения равна: 2−128. Сомнительное утверждение. Чем оно обосновано? Quote Share this post Link to post Share on other sites More sharing options...
blackfin 81 May 11, 2024 Posted May 11, 2024 · Report post On 5/11/2024 at 7:38 AM, jcxz said: Что примерно на 100 десятичных порядков меньше чем у "Вихря Мерсенна". Это не инженерный подход. Грамотное решение любой инженерной задачи подразумевает оптимальное использование ресурсов. Не нужна никакая избыточность. Нужно использовать ровно столько ресурсов, сколько требуется для решения технической задачи. Ни больше ни меньше. И 100 десятичных порядков здесь явно не нужны. Quote Share this post Link to post Share on other sites More sharing options...
A.V.Avtomat 54 May 11, 2024 Posted May 11, 2024 (edited) · Report post 49 минут назад, blackfin сказал: Это не инженерный подход. Грамотное решение любой инженерной задачи подразумевает оптимальное использование ресурсов. Не нужна никакая избыточность. Нужно использовать ровно столько ресурсов, сколько требуется для решения технической задачи. Ни больше, не меньше. И 100 десятичных порядков здесь явно не нужны. Не понятно, что вообще нужно топикстартеру. Edited May 11, 2024 by A.V.Avtomat Quote Share this post Link to post Share on other sites More sharing options...
A.V.Avtomat 54 May 11, 2024 Posted May 11, 2024 (edited) · Report post ... Edited May 11, 2024 by A.V.Avtomat Quote Share this post Link to post Share on other sites More sharing options...
jcxz 361 May 11, 2024 Posted May 11, 2024 · Report post 46 минут назад, blackfin сказал: Это не инженерный подход. Грамотное решение любой инженерной задачи подразумевает оптимальное использование ресурсов. Не нужна никакая избыточность. Нужно использовать ровно столько ресурсов, сколько требуется для решения технической задачи. Не больше, не меньше. Грамотным является хотя бы прочитать то, что пишут оппоненты. А вы видимо даже не читали то, что я предложил. Если бы прочитали, то уяснили бы что: Цитата Вихрь Мерсенна генерирует псевдослучайные последовательности чисел с периодом равным одному из простых чисел Мерсенна, отсюда этот алгоритм и получил своё название и обеспечивает быструю генерацию высококачественных по критерию случайности псевдослучайных чисел. Т.е. - период 4,3•106001 (о котором я писал) - это не константа. И можно выбрать свой период, наиболее удобный. Из ряда простых чисел Мерсенна. Ряд этот имеется по приведённой мною ссылке. Например в нём есть число = 170141183460469231731687303715884105727. (что даёт разрядность = ln(170141183460469231731687303715884105727)/ln(2) = ~127 бит). Т.е. - реализуем Вихрь Мерсенна с базой = 170141183460469231731687303715884105727 и получаем период = ~2^127. И этот период математически обоснован, а не голословное утверждение. ТСу 2^127 вроде как - вполне достаточно. 2 Quote Share this post Link to post Share on other sites More sharing options...
A.V.Avtomat 54 May 11, 2024 Posted May 11, 2024 · Report post 19 минут назад, A.V.Avtomat сказал: ... Quote Share this post Link to post Share on other sites More sharing options...