Что такое чрезвычайно простой асимметричный шифр, который я могу представить в пабе?


30

Я пытаюсь объяснить основы Биткойн моим родителям.

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

Какой чрезвычайно простой асимметричный шифр я могу использовать в качестве примера?

Как можно использовать этот упрощенный шифр для подписи?


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

@Ariel Криптография с открытым ключом, или, по крайней мере, цифровые подписи, приходит, когда вы хотите знать, что человек, который говорит отправить 3 BTC от Ариэля Райану, на самом деле Ариэль.
Дерек Элкинс

1
Правильно, но это не специфично для биткойнов, поэтому его родители будут только сбивать с толку.
Ариэль

1
Вы можете объяснить асимметричное шифрование, цепочку блоков или биткойны. Выбери один.
Рафаэль

2
Этот вопрос может быть лучше подходит для криптографии .
Рафаэль

Ответы:


28

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

Прозрачной простой иллюстрацией этого, которую я видел, является следующее. Предположим, что у двух сторон есть ведро и несколько цветов, и они хотят договориться о конкретном секретном соединении. Им разрешено посылать друг другу ведро с определенным соединением, но все отправленное подвергается злому противнику. Подчеркнутое предположение состоит в том, что смешивать цвета легко, но разложить смесь на ингредиенты сложно. Это предположение (которое легко связано с формальной стороной вещей) позволяет достичь своей цели. Выберите общедоступный цвет и разрешите обеим сторонам выбрать секретный цвет, обозначим их S 1 , S 2 . Первая партия затем отправляет ведро смеси P , S 1пS1,S2п,S1, Аналогичным образом вторая партия отправляет ведро, содержащее смесь . Наконец, каждая сторона добавляет свой личный цвет к смеси, которую он получил, и теперь обе стороны имеют смесь P , S 1 , S 2 , которая (по нашему предположению) остается секретной от любых подслушивающих. Формальной версией этого является протокол обмена ключами Диффи-Хеллмана, который основан на твердости дискретного журнала.п,S2п,S1,S2

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


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

15

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

(Я приведу этот пример, чтобы ответить на ваш вопрос, как указано, без какого-либо конкретного мнения о том, действительно ли он полезен для объяснения биткойнов.)


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

@Jules Мне очень нравится это объяснение, которое делает его аналогом тампера.
Райан Лич

7

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

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


3
Это не вся история. Это должно быть трудно инвертировать, если у вас нет закрытого ключа.
Бен Милвуд

+1 для Диффи-Хеллмана. Это достаточно простой для объяснения протокол, который соответствует примеру с цветами.
Ариэль

4

Я не думаю, что существует легко демонстрируемая асимметричная система шифрования. Вместо этого опишите, что он делает, а не как он это делает. На самом деле, мне пришлось сделать это недавно, чтобы описать, как работает PGP. Для BitCoin сконцентрируйтесь на второй части, подписывая сообщения.

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

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

Если они спросят, как генерируются ключи, то скажите

Я думаю о двух очень больших простых числах, а затем преобразовываю их с помощью математической функции. Он выплевывает закрытый и открытый ключи.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.