id: Гость   вход   регистрация
текущее время 19:12 16/04/2024
Автор темы: Smekalisty, тема открыта 08/07/2010 13:58 Печать
Категории: криптография, шифрование с открытым ключом
http://www.pgpru.com/Форум/ТехническиеВопросы/ПубличныйКлючНаБумаге
создать
просмотр
ссылки

Публичный ключ на бумаге


Здравствуйте.


Прошу помочь мне понять, как правильно представить публичный ключ на бумаге в шестнадцатеричной системе счисления.
Это есть: "Акт признания открытого ключа (АСП, ЭЦП, Сертификата)"


Я написал программу (аналог хеш-редактора), которая тупо берет подрят каждый символ публичного ключа и переводит его (символ) в шестнадцатеричную систему счисления. На выходе я получаю "хеш" всего ключа и логично, что могу не имея сам ключ – создать его, либо, что требуется, сверить открытый ключ с его бумажной копией и сказать, что это одно и то же.
Правильно ли будет так сделать? Может так правильно делать только для определенных криптосистем?


Еще. Я имею некоторое отношение к нескольким криптосистемам – работа идет через браузер. Создаю закрытый ключ + запрос на сертификат и получаю бумажку с копией открытого ключа. Далее этот же запрос (содержащий публичный ключ) перевожу в "хеш" – сравниваю с бумажкой – не нахожу и двух символов стоящих рядом. Но самое главное что сертификат, выданный на запрос, при просмотре через браузер идентичен бумажке.
Получается, что "хеш" рассчитывается на каком-то уровне ниже?


Дополнительная информация:
Мой ключ не заверяется сертификатом.
Пример моего ключа (символы). Система – Dekart RSA


Начало сточкой ниже
 ¤ RSA1    {/‘ фтp|ъ|•fqўлy№”аKєг9°UѓиеУЎ-Г!ЉСx ь[nlil,w%‹ф$—ґџИp`,оюNЅЌС}®M¤Ѓ=§с Џ”·=Ю@• Ґ™|ЪO?O›џ\ЏэНqED4„­`оХoч J$¤‰лWa
 6RQ1(
Конец публичного ключа


Ещё пример моего ключа (символы). Система – Open SSH


Начало сточкой ниже
AAAAB3NzaC1yc2EAAAABIwAAAQEA5e6rAY+8RqkTIs6hjvm8gId5FBmy2SwQp6lw
P8mp3HctUJ7SZUd68VrWmxIeT+MeLqV8S689AorSRTY8X6LEmbHguaa6FiaSUNlk
4b2Og+eRBgjt1gy4ogHfIqh7qrWcCqZKvaUccSuwP5pNi/CQKsIfwMd0rrvniDGa
T/y4ybQ6fyoqfXyKhN40V0p7sT9cnki+zbgXePHdVrHf6CaS+AJyZkC+8xQeZaFD
VRjpUtpAs51VxLxp0ev5Xw5tiyH5+H9mmkaJ/PCBJ21a0PRPanA6xXSvCliImwYp
A4KwNSXoUhMyL4SziFqOuoZmYEXPSmA5TE7ErlH5waU9MWj+qQ==
Конец публичного ключа


Буду благодарен за любую помощь


 
Комментарии
— SATtva (08/07/2010 14:06)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Я написал программу (аналог хеш-редактора), которая тупо берет подрят каждый символ публичного ключа и переводит его (символ) в шестнадцатеричную систему счисления. На выходе я получаю "хеш" всего ключа

Надеюсь, вместо "хеш" вы имели в виду "hex"? Ибо это сильно разные вещи.

логично, что могу не имея сам ключ – создать его, либо, что требуется, сверить открытый ключ с его бумажной копией и сказать, что это одно и то же. Правильно ли будет так сделать? Может так правильно делать только для определенных криптосистем?

Если выше имелось в виду "hex" (то есть конвертация двоичной записи в шенстнадцатеричную), то да. Если имелось в виду именно "хэш-значение", то отчасти — Вы сможете только сверить правильность имеющегося ключа, но не восстановить его исходное значение.

В общем, разберитесь сначала с терминологией.
— Smekalisty (08/07/2010 14:22)   профиль/связь   <#>
комментариев: 4   документов: 1   редакций: 0
С терминологией. Слово хеш = hex (оно у меня в кавычках), подразумевается перевести символ из двоичной позиционой системы счисления в шестнадцатеричную позиционую систему счисления.

"хэш-значение" – я нигде не писал, меня это не интересует в этой теме никак
— unknown (08/07/2010 14:55, исправлен 08/07/2010 14:55)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Создаю закрытый ключ + запрос на сертификат и получаю бумажку с копией открытого ключа. Далее этот же запрос (содержащий публичный ключ) перевожу в "хеш" – сравниваю с бумажкой – не нахожу и двух символов стоящих рядом.

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

— SATtva (08/07/2010 15:19)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Слово хеш = hex (оно у меня в кавычках)

То есть мы догадаться должны о Ваших доморощенных "терминах"?

Сама схема неудачна по двум причинам. Во-первых, шестнадцатеричная последовательность чрезмерно избыточна. Если использовать кодировку base64, длина вывода сократится почти в полтора раза. Во-вторых, при ручном вводе длинных бессмысленных последовательностей букв и цифр велика вероятность допустить опечатку, и придётся начинать всё с начала. Правильнее разбить последовательность на сравнительно короткие строки, каждую из которых завершать её краткой контрольной суммой (скажем, CRC-{8,16}). Так программа хотя бы сообщит пользователю, в какой строке он ошибся, и предложит именно её повторить.
— Smekalisty (08/07/2010 16:03)   профиль/связь   <#>
комментариев: 4   документов: 1   редакций: 0
SATtva

При чем здесь base64? Меня она в данном случае так же не интересует, так же не считаю что base64 – это "кодировка". Не видел ни одного сертификата, где бы открытый ключ был в base64. Держу в руках 3 акта (BSS, Золотая корона, быстая почта) – везде 16.
— SATtva (08/07/2010 16:21)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Вы в своём сообщении привели сертификат OpenSSH. Так вот он закодирован именно в base64. Стандарт OpenPGP также описывает сходную с base64 кодировку (radix64). Base64 используется именно из-за того, что не раздувает данные без меры, как base16 aka hex.

так же не считаю что base64 – это "кодировка"

Ух ты! А что же это?
— Smekalisty (08/07/2010 16:42)   профиль/связь   <#>
комментариев: 4   документов: 1   редакций: 0
SATtva

Я в своем сообщении не приводил "сертификат OpenSSH". Черным по белому написанно – ключ. Там же приведен пример ключа.

При чем тут OpenPGP? Меня он сейчас опять же в данном случае не интересует.
Все ваши сообщения не по теме, а показать что вы что-то знаете.

Кодировка – 1251, utf-8, ascii
base64 – позиционная система счисления с основанием 64
Разница надеюсь чувствуется
— SATtva (08/07/2010 16:49)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Милейший друг, Вы спросили, насколько удачна Ваша схема. Я привёл конкретные и чёткие рекомендации по её улучшению. Если будете продолжать разговор в том же духе, то пойдёте искать справедливость в другие интернеты.

Кодировка – 1251, utf-8, ascii
base64 – позиционная система счисления с основанием 64
Разница надеюсь чувствуется

Учите матчасть. Надеюсь, сами разберётесь, чем отличается система счисления с заданным основанием от кодировки?
— Observer (30/01/2011 18:27)   профиль/связь   <#>
комментариев: 111   документов: 9   редакций: 22
to Smekalisty, вас это интересует? (часть информации замазана)

Первая подпись
— Smekalisty (31/01/2011 09:34)   профиль/связь   <#>
комментариев: 4   документов: 1   редакций: 0
Observer, да, ещё интересует, отпишитесь если можете помочь
— Observer (31/01/2011 11:07)   профиль/связь   <#>
комментариев: 111   документов: 9   редакций: 22
Я дал ссылку на документ, который генерится при регистрации банк-клиента. Бумага несёт отпечаток паблик ключей для юридической поддержки договора (признание ключей клиента). В инете видел и другие реализации подобной бумаги (RSA-шифрование).
— Гость (02/02/2011 12:36)   <#>
при ручном вводе длинных бессмысленных последовательностей букв и цифр велика вероятность допустить опечатку
При достаточно крупном шрифте и нормальном качестве печати автоматическое распознавание (например c помощью FineReader) приближается к 100%
— Гость (14/02/2011 20:38)   <#>
SATva, в русской педивикии написано именно так, как написал Smekalisty. Хз насколько она права, но это так. Спор начал ты.

Just my 2 cents.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3