Pull to refresh

Comments 23

Проще: публичный ключ — это замок. Приватный ключ — это ключ от замка.

Ну, нет. Аналогия, где ключ - это замок, а другой ключ - это ключ, совсем не проще.

Замок - это ключ, звучит как загадка) Еще веселее то, что публичный ключ называют открытым. Получается, что открытый ключ для закрытия, а закрытый - для открытия.

Нет никакого замка! Регулярно на собеседованиях спращиваю про электронную подпись и получаю ответ, что ЭП - это пара ключей, а ещё ЭП шифрует документы.

Очевидно, что никакая ЭП документы не шифрует, а ключи - это способ из хэша сделать ЭП (закрытым ключом), и проверить корректность ЭП и идентифицировать подписанта открытым ключом.

Речь именно о шифровании) В случае аутентификации (сертификат в статье или ЭЦП) - может быть по разному, есть разные алгоритмы. Можно и шифровать, тогда открытый ключ И аутентифицирует, И расшифрует (помимо проверки целостности, которую можно обеспечить просто хэшем). Открытый ключ будет подписью в таком случае. Хз как там в терминологиях по госту, я говорю с точки зрения логики - ЭП должен подтверждать авторство.

А насчет того, что подпись делают на хэш - не написал, но инфа полезная.

Формально (с юридической точки зрения) ЭП - это аналог собственноручной подписи, не больше и не меньше. Шифрование - это отдельный процесс: когда мы ручкой подписываем документ, мы же не закрываем его тем самым от посторонних. Если мы просто зашифруем документ закрытым ключём, то вряд ли в суде такой документ будет признан подписанным. ?

И еще три копейки с формальной точки зрения: ЭП не подтверждает авторство, ЭП подтверждает, что хозяин закрытого ключа поставил свою подпись под конкретной версией документа и эта версия осталась неизменной с момента подписания. То есть волеизъявление лица и неизменность документа (его версии).

Юридически, в РФ - да (пока опять не переписали одним днем пакет из 13 законов ?). Но в целом, в мире:

(ЦП, Digital signature) Цифровая подпись — это математическая схема проверки подлинности цифровых сообщений или документов.

Ну не авторство, а подлинность (authenticity). В более общем случае - это сертификат подлинности. Те же самые NFT еще и авторство доказывают, помимо подлинности.

Ну, а если по ГОСТ 34.10-2018

3.1.15 [электронная цифровая] подпись (signature); ЭЦП: Строка бит, полученная в результате процесса формирования подписи... "электронная подпись", "цифровая подпись" и "электронная цифровая подпись" являются синонимами.

Цифровая подпись предназначена для аутентификации лица, подписавшего электронное сообщение.

Самый популярный ассиметричный алгоритм - RSA, но при этом - морально устаревший. На эту тему есть замечательная статья Хватит использовать RSA от @Scratch. Для генерации ключей рекомендуют использовать 2048-bit RSA или 256-bit ECDSA. Но ECDSA - быстрее и размер ключа меньше.

Это всё хорошо, но покажите мне стандартизированную и проверенную временем/криптографами программную реализацию ECIES на любом языке программирования, которой люди могли бы пользоваться как RSA для шифрования сообщений. Всё, что я видел - так это ECIES созданный в кустарных условиях.

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

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

ECDiffieHellmanCng Class в NET.7

Я и не говорю, что RSA - плохой, мне он очень нравится. И то, что EC оптимальнее, чем RSA - тоже не я придумал.

что является гибридной схемой шифрования, но не асимметричным шифрованием.

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

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

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

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

Тобишь моральное устарeвание означало бы, что всё что есть у RSA - уже давно есть у EC. А я говорю, что шифрования в EC на уровне программной реализации так и не завезли и поэтому вряд-ли можно говорить о каком-либо устаревании до тех пор, пока не будет аналогов. В этом был мой тезис.

Понял, я имел ввиду исключительно TLS для обмена ключами. Может дополню статью, спасибо за замечание.

Что то я не пойму, вы утверждаете что с помощь ЕС нет надежного или вернее общепринятого надежным способа шифрования. Все что сейчас имеется, это все поделки что ли?

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

Представьте сейф с кодовым замком. Но закрыть его нельзя без правильного кода. Допустим, открывает его 1234, а закрывает 4321. Итого - два цифровых ключа.

Это просто математика. Например, берёте некоторое простое число, p=251. Берёте некоторый ключ шифрования, k=77. Далее формируете ключ расшифрования, q, такой что kq = 1 mod p. В данном случае q=163, потому что 77*163=12551, а последнее число даёт остаток от деления на p=251 равный единице. Далее шифруете некоторое сообщение v=22 путём умножения на ключ vk mod p = 188. Этот шифртекст можно расшифровать умножением на открытый ключ q: 188*163 mod p = 22 = v.

Это однозначно проще понять ?

Я специально не стал разбирать алгоритмы шифрования в статье, чтобы их проще объяснить - отдельная статья нужна. Для RSA уже тысячи написаны, о сложности факторизации полупростых чисел. Есть, например - ELGAMAL, там иной алгоритм. DCA, ECC и т.д.

Я пример с сейфом, честно, не понял

Например, шкаф с ячейками службы доставки в супермаркете. Аня заказала у Вики товар. Служба доставки говорит Вике код, чтобы ячейку закрыть, а Ане - чтобы открыть. Вика приходит, ячейка - открыта. Помещает товар, набирает код - ячейка закрывается. Потом приходит Аня - вводит код и открывает ячейку.

А, дак там наверное в памяти коды прописаны и нет математики, только сравнение

Зависит от реализации. Это просто пример ассиметричной криптографии в реальном мире, когда есть два ключа. Хз, спрашивал ли комментатор о математическом обосновании, но если да - в википедии все уже написано. А вот простым языком на аналогиях из реального мира - хз, есть ли где еще.

Так то можно было бы в пример шифр Цезаря. "Чу, я слышу пушек гром!" зашифровываем с k=3, получается "Ъц, в фоюыц тцызн ёусп!", а расшифровываем с ключом k=30, ибо с k=3 будет "Эщ, е чсбющ хщюкр ицфт!". Может и зря я его к симметричным отнес)

Ну, или идея почтового ящика с кодовым замком. Один код (публичный) - открывает щель для корреспонденции, второй (приватный) - открывает ящик полностью. И публичный код только у почтальона. И никаких рекламных брошюр и прочего мусора в ящике.

Аналогия прозвучала довольно хорошая относительно печати и оттиска.

Sign up to leave a comment.

Articles