На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> деление секрета по Shamir , шифрование, криптография
    Всем хай! Сходу к делу.

    Кое-что непонятно по схеме разделения секрета Шамира.
    Более-менее понятно, когда шифруем целые числа.
    Например: secret = 100, N = 5, K = 3
    секрет - число 100, делим на 5 фрагментов ( 5 кодов, частей ) и затем, используя 3 фрагмента, дешифруем число.
    Здесь больших проблем нет. Даже работает корректно вроде.

    -------------------------------
    А если зашифровать надо строки, ну хотя бы строку для начала.
    Например, такая строка: "Apple for table".
    Во-первых, непонятно, на сколько частей колоть строку? Например, 1 часть такая "Apple" и что? Приводить строковую часть "Apple" к целому числу, например, суммой АСКИ-кодов? Это ведь не гарантирует однозначности строки. Концептуально непонятно, к чему стремиться.

    Во-вторых, вижу на данный момент лишь такой вариант шифрования строк - посимвольно. У каждого символа есть АСКИ-код - суть целое число. Когда секретом Шамира выступает целое число - все работает.

    Т е допустимо просто в цикле пробежать по заданной строке и для каждого символа вызвать алгоритм Шамира, передавая на вход целое число ( это ASCII-код символа )? или это бред тотальный??)

    спс. за внимание
      А какая разница, числа или строки? Суть алгоритма в том, что имеется N чисел-паролей, причём каждому участнику известно только одно из них, и достаточно K из этих чисел для восстановления секрета.
      Так что, получив строку, мы делим её по любому признаку на K частей (скажем, по словам, или по количеству символов), после чего каждая подстрока по некоему известному алгоритму преобразуется в число. И да, сумма ASCII для этого вполне подходит.
      Гарантия однозначности не нужна - от слова "совсем". Просто если алгоритм вычисления числа по заданной строке "спрятан", то получается ещё одна степень защиты, а если нет - то и неважно, запомнит участник свою подстроку или получаемое из неё число.
      Что до шифрования - шифруются однозначно числа. Если надо шифровать строку, то она делится на куски, каждый кусок конвертируется в число (преобразование в ASCII - вполне подходит), каждое число шифруется отдельно, итоговое шифрованное сообщение и есть совокупность этих чисел, в исходном порядке или перемешанных по определённому алгоритму (плюс ещё степень защиты).
      Сообщение отредактировано: Akina -
        Akina, благодарен за четкое пояснение.
        Ты очень правильно написал про степени защиты - у меня были похожие мысли, но не мог сформулировать.

        Условно говоря, если нужна ОДНА степень защиты, то суммируем АСКИ-коды символов строки, получая число, и отдаем на функцию encoding. И в принципе этого ДОСТАТОЧНО)
        Если нужна 2ая степень защиты, то дополнительно делаем то же самое для каждого символа.

        еще такой момент есть, думал, что, если делим ( кодируем ) на N частей число, то для его восстановления нужно N - 1 фрагментов. А в моем исходнике N = 5, а K = 3 ( а не 4! ). Но это ладно...

        зы: а вообще криптографические алгоритмы неприятные по своей сути)), особенно, когда я вижу готовый исходник какого-нибудь алгоритма - это дикий ужас, куча переменных аля x, y, z, c, k и какие-то бесконечные мат.преобразования над ними мутные)
          Цитата FasterHarder @
          думал, что, если делим ( кодируем ) на N частей число, то для его восстановления нужно N - 1 фрагментов. А в моем исходнике N = 5, а K = 3 ( а не 4! ).

          Ну это всё хорошо, с теорией и примером, расписано у википедиков - посмотри.

          Цитата FasterHarder @
          криптографические алгоритмы неприятные по своей сути)), особенно, когда я вижу готовый исходник какого-нибудь алгоритма - это дикий ужас, куча переменных аля x, y, z, c, k и какие-то бесконечные мат.преобразования над ними мутные

          К реализации такого алгоритма предъявляется только одно требование - эффективно. А то, что ни хрена не читаемо - так это даже не недостаток...
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0186 ]   [ 15 queries used ]   [ Generated: 24.04.24, 17:06 GMT ]