Гомоморфное шифрование

Тема в разделе "WASM.CRYPTO", создана пользователем xcode, 12 ноя 2018.

  1. xcode

    xcode Member

    Публикаций:
    0
    Регистрация:
    8 апр 2007
    Сообщения:
    105
    Кто нибудь пробовал такое? Какие есть библиотеки (если есть)?

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

    Я не очень понимаю, можно ли при этом скрыть еще и алгоритм вычислений. То есть чтобы алгоритм был зашифрован в самих входных данных, и никакое дизассемблирование не могло бы прояснить сути того что же конктерно делает "криптовиртуальная машина" с конкретным набором данных (ибо они зашифрованы!). Так например толку от одного гомоморфного сложения мало, а если даже будут гомоморфные основные арифметически и логические операции, но при этом открытые опкоды, то можно даже не видя данных, понять что же алгоритм делает. А вот интересно, можно ли как-то и алгоритм зашифровать. Ну и вообще есть ли практические реализации, или только теория.
     
  2. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    а откуда ты сию чушь почерпнул? :)
     
  3. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.993
    Для RSA приводят такой пример
    E(x) = x^e mod n
    E(m1)*E(m2)=(m1^e * m2^e) mod n = (m1*m2)^e mod n = E(m1*m2)
    То есть произведение двух чисел, зашифрованных RSA можно прямо в шифрованном виде и делать. Берешь и умножаешь. С какой целью надо умножать два числа под 1024 и более разрядов - шут его знает. Но типа можно. По-моему серьезных практических применений у таких штук нету.
     
  4. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    f13nd, чтобы этот пример имел практическое значение, нужно m1*m2 < n и то для дешифровки результата надо убирать е на защищённой машине. Тч практически каша из топора :)
     
  5. xcode

    xcode Member

    Публикаций:
    0
    Регистрация:
    8 апр 2007
    Сообщения:
    105
    Сия чушь из интернета:)
    https://ru.wikipedia.org/wiki/Гомоморфное_шифрование
    Практический результат... я пока собираю информацию. Возможно ли, и если возможно то что именно. В зависимости от этого будет понятнее что там с практическим результатом.
     
  6. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    xcode, если взять пример f13nd ==получаем..

    1. возводим м1 и м2 в е и кидаем на облако.
    2. считаем их произведение "секретно" на облаке.
    3. чистим результат от е.
    ======
    №1 и №3 нужно делать на надёжной тачке и общее кол-во операций получается.. 3*lg2(n) для локальной тачки и lg2(n) на облаке. любопытные "облачные" изыски получаются :grin: и то тута подвох == на локалке кол-во операций умножения, а на облачке практически сложение идёт :)