Я был бы признателен, если кто-то здесь может помочь с сжатием кривой для меня.
http://stackoverflow.com/questions/17171542/algorithm-for-elliptic-curve-point-compression
Благодарю.
|
18 июня 2013, 2:28:39 PM | # 1 |
Сообщения: 262
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome" Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e подробнее... Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru Я был бы признателен, если кто-то здесь может помочь с сжатием кривой для меня.
http://stackoverflow.com/questions/17171542/algorithm-for-elliptic-curve-point-compression Благодарю. |
18 июня 2013, 2:45:58 PM | # 2 |
Сообщения: 1302
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Получил 1806 Биткоинов
Реальная история. Сжатие легко. Посмотрите на последний бит Y координат, добавьте его в 0x02 и использовать его в качестве флага вместо 0x04. Затем отбросить Y.
|
18 июня 2013, 2:51:52 PM | # 3 |
Сообщения: 262
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Сжатие легко. Посмотрите на последний бит Y координат, добавьте его в 0x02 и использовать его в качестве флага вместо 0x04. Затем отбросить Y. К сожалению, вы потеряли меня немного там. Что такое 0x02 и 0x04? |
18 июня 2013, 2:56:31 PM | # 4 |
Сообщения: 1134
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Открытый ключ является точка (X, Y)
Его сериализации 04 + X + Y, как несжатый, и (02 + X, как сжатый, если Y еще), и (03 + X, как сжатый, если Y является нечетным). X и Y здесь соответствующая 64-символьная шестнадцатеричная строка |
28 июня 2013, 9:22:58 AM | # 5 |
Сообщения: 262
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Открытый ключ является точка (X, Y) Его сериализации 04 + X + Y, как несжатый, и (02 + X, как сжатый, если Y еще), и (03 + X, как сжатый, если Y является нечетным). X и Y здесь соответствующая 64-символьная шестнадцатеричная строка Хорошо, позвольте мне привести пример того, что я хочу сделать. Возьмите ECDH демо здесь http://www-cs-students.stanford.edu/~tjw/jsbn/ecdh.html Если сгенерировать закрытый ключ Алисе я могу получить Код: Р = 1175846487558108474218546536054752289210804601041 Что дает следующую общественную точку ключа. Код: Х = 583857549063195252150226340830731484791130788759 Y = 1195037839477751118658084226553581900533276838164 Так что с выше сжатия, Y даже так я префикс 02 и использовать X в качестве точки так, сжатая точка будет. Код: 02583857549063195252150226340830731484791130788759 Так как я пошел бы от выше вернуться к исходному X, Y точки предполагающей не имеют закрытый ключ? |
28 июня 2013, 9:40:11 AM | # 6 |
Сообщения: 1134
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Открытый ключ является точка (X, Y) Его сериализации 04 + X + Y, как несжатый, и (02 + X, как сжатый, если Y еще), и (03 + X, как сжатый, если Y является нечетным). X и Y здесь соответствующая 64-символьная шестнадцатеричная строка Хорошо, позвольте мне привести пример того, что я хочу сделать. Возьмите ECDH демо здесь http://www-cs-students.stanford.edu/~tjw/jsbn/ecdh.html Если сгенерировать закрытый ключ Алисе я могу получить Код: Р = 1175846487558108474218546536054752289210804601041 Что дает следующую общественную точку ключа. Код: Х = 583857549063195252150226340830731484791130788759 Y = 1195037839477751118658084226553581900533276838164 Так что с выше сжатия, Y даже так я префикс 02 и использовать X в качестве точки так, сжатая точка будет. Код: 02583857549063195252150226340830731484791130788759 Прежде всего, необходимо сделать его шестнадцатеричное Делая это, вы увидите, что он имеет 40 цифр, который является "слишком низко", Оно должно быть 64 (или 63, или иногда меньше). Я думаю, что вы нажали на кривой с слишком малыми параметрами, попробуйте secp256r1. (Но имейте в виду, что это не кривая Bitcoin использует!) Тогда сделайте это снова. Например: частный ключ = 85028609766675152251934575542315533189276559485968373120473797427005522772778 Что делает Х = 74025470963109022618637889099135097200712436357290103177754999741983793503008 Y = 50024355523753322356558351156744867670202798471897393499007716154220308517913 Так: Х (HEX) = a3a8ee8a09fa012934eb0eee2150d4bcb6268f2b4430abf31f4a58c95b365b20 Y (HEX) = 6e98c827edc5e80829c71e1fa9a83043379344316ba641d7c9c0850f687ed419 Таким образом, две соответствующие публичные ключи pbk1 = '04a3a8ee8a09fa012934eb0eee2150d4bcb6268f2b4430abf31f4a58c95b365b206e98c827edc5e 80829c71e1fa9a83043379344316ba641d7c9c0850f687ed419' pbk2 = «03a3a8ee8a09fa012934eb0eee2150d4bcb6268f2b4430abf31f4a58c95b365b20», потому что У нечетно Так как я пошел бы от выше вернуться к исходному X, Y точки предполагающей не имеют закрытый ключ? |
28 июня 2013, 1:02:03 PM | # 7 |
Сообщения: 262
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Благодаря jackjack это здорово.
|
27 июня 2014, 6:37:37 PM | # 8 |
Сообщения: 1764
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
она не должна быть исключена возможность Y быть отрицательным числом? предполагая, таким образом, я предполагаю, что это не изменит ли это странным или даже.
|
27 июня 2014, 6:53:25 PM | # 9 |
Сообщения: 1610
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Я был бы признателен, если кто-то здесь может помочь с сжатием кривой для меня. Игнорировать это:http://stackoverflow.com/questions/17171542/algorithm-for-elliptic-curve-point-compression Благодарю. котировка Сжатие эллиптических точек кривой запатентована Certicom, так что вы не должны использовать его без лицензии, в целом. И делать все, что вы хотите. |
27 июня 2014, 7:14:09 PM | # 10 |
Сообщения: 2366
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
котировка Сжатие эллиптических точек кривой запатентована Certicom, так что вы не должны использовать его без лицензии, в целом. Все "компрессия" означает, что посылает только X corrd плюс один бит Y это вряд ли следует называть "компрессия" поскольку многое опуская избыточные данные. Наблюдение, что было необходимо скоординировать только X было сделано в самом раннем из ECC papers- включая, Миллер, В., "Использование эллиптических кривых в криптографии" с 1985: "Наконец, следует отметить,, что даже если мы сформулированы все в терминах точек на собственной эллиптической кривой, что для протокола обмена ключами (и других видов использования в качестве односторонних функций), то только х-координата должна быть передается." Если бы кто-нибудь получили патент, как широкий, как он будет недействительным, так тривиально в связи с Миллером процитировать выше и многие другие предыдущие описания методов. |
27 июня 2014, 8:09:32 PM | # 11 |
Сообщения: 1218
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
она не должна быть исключена возможность Y быть отрицательным числом? предполагая, таким образом, я предполагаю, что это не изменит ли это странным или даже. Нет, это не возможно. Когда большинство людей слышат эллиптические кривые они думают о действительных числах (-3.387232, 4,478221). Эллиптические кривые, используемые в криптографии над конечными полями. Все значения являются положительными целыми числами по модулю realllllly большого простого числа (для secp256k1 это 2 ^ 256-2 ^ 32-977). Конечные поля делают работу с кривыми совершенно разные понятия. "кривые" когда рентгенографический над конечным полем даже не похоже на то, что большинство людей себе, когда они слышат Eliptical кривой криптографии. Вот очень хорошая статья о ECC в целом (если хватает времени страницы 2 часть, которая имеет самое непосредственное отношение) http://arstechnica.com/security/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/ |
27 июня 2014, 8:14:27 PM | # 12 |
Сообщения: 1218
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Если бы кто-нибудь получили патент, как широкий, как он будет недействительным, так тривиально в связи с Миллером процитировать выше и многие другие предыдущие описания методов. Это животное PEVE мой, как хорошо. Это, как говорится, кто ищет, чтобы разработать некоторые новые приложения с использованием ECC должны внимательно посмотреть на патент арсенала Certicom в. http://en.wikipedia.org/wiki/ECC_patents Одна яркая точка их патент на фактическое сжатие ECC должен истечь в следующем месяце, и он включает в себя намного больше, чем падение значения у, потому что это может быть пересчитаны. http://www.google.com/patents/US6141420 |
27 июня 2014, 10:42:17 PM | # 13 |
Сообщения: 2366
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Его к сожалению, так больше всего патенты заклали электронные деньги в первый раз вокруг ... они существенно тормозят развертывание криптографической технологии в Интернете, - даже если они на самом деле не применяется, чтобы заставить человек развертывание технологии шифрования достаточно горки, что небольшие степень неопределенности из патентов полностью советы баланса.
Перед началом слишком обеспокоены DeathAndTaxes разумное предложение, - вы действительно не должны пытаться это без первого принимая какое-то время, чтобы узнать о том, как читать патенты, любой из прочитанного также следует читать по стороне RFC 6090, который прочно устанавливает непатентоспособным предшествующего уровня техники, основы для эллиптической кривой технологии. |
27 июня 2014, 10:42:19 PM | # 14 |
Сообщения: 1764
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
она не должна быть исключена возможность Y быть отрицательным числом? предполагая, таким образом, я предполагаю, что это не изменит ли это странным или даже. Нет, это не возможно. Когда большинство людей слышат эллиптические кривые они думают о действительных числах (-3.387232, 4,478221). Эллиптические кривые, используемые в криптографии над конечными полями. Все значения являются положительными целыми числами по модулю realllllly большого простого числа (для secp256k1 это 2 ^ 256-2 ^ 32-977). Конечные поля делают работу с кривыми совершенно разные понятия. "кривые" когда рентгенографический над конечным полем даже не похоже на то, что большинство людей себе, когда они слышат Eliptical кривой криптографии. Вот очень хорошая статья о ECC в целом (если хватает времени страницы 2 часть, которая имеет самое непосредственное отношение) http://arstechnica.com/security/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/ спасибо за упоминание меня в этой статье. даже если я читал это пару раз я никогда не понимал тот факт, что конечные кривые только ниже представленные целые числа. это сложно (для меня) б / с горизонтальной симметрией вокруг, что выглядит как ось х подразумеваемой мне, что отрицательные координаты у по-прежнему возможны в этой конечной области. |
28 июня 2014, 12:14:55 AM | # 15 |
Сообщения: 1218
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Да, что граф не делает его ясно, но это одно из свойств, имеющих не только целые значения, но целые значения "над" конечное поле. Цифры "обтекать" когда они идут мимо края поля. Таким образом, в конечном поле над 23 у = -5, если отражение вокруг того, чтобы быть у = 18 (-5 + 23).
Из наших патентных троллей Certicom. котировка Обратите внимание, что есть две точек для каждого й значения. Даже если граф кажется случайным, есть еще симметрия относительно у = 11,5. Напомним, что эллиптические кривые над действительными числами, то существует негативный момент для каждой точки, которая отражается через оси х. Над полем F23, отрицательные компоненты в у-значения берутся по модулю 23, в результате чего положительное число как разница от 23. Здесь -P = (Xp, (-yP моделирование 23)) Теперь, потому что у меня было мало, я буду обманывать и просто проверить решения, а не решить проблему. Я хотел бы также отметить, что это хорошее маленькие (и, по сути бесполезный) конечное поле, реальная криптография использует много гораздо больше простых числа. Так давайте рассмотрим (1,5) & (1,18) (У ^ 2)% 23 = (х ^ 3 + X)% 23 (5 ^ 2)% 23 = (1 ^ 3 + 1)% 23 25% 23% 2 = 23 2 = 2, так что раствор (1,5) является действительным. (У ^ 2)% 23 = (х ^ 3 + X)% 23 (18 ^ 2)% 23 = (1 ^ 3 + 1)% 23 324% 23% 2 = 23 2 = 2, так что раствор (1,18) является действительным. Это также показывает, как мы можем использовать сжатые ключи. У ^ 2 означает, что, когда точка существует там всегда будет один отраженный вокруг оси и имеющий конечное поле над простым числом означает, что вы всегда будете иметь ровно один нечетное у значения и ровно один даже у значения в этой паре точек. х = 1, у = {5, 18} = один нечетным & один даже х = 11, у = {10, 13} = один нечетный & один даже х = 15, у = {3, 20} = одно нечетное & один даже Бонусные баллы, если вы можете увидеть, где это происходит. Если вы можете вычислить пару значений у * от х, и они всегда будет четным и нечетным, то вместо того, чтобы писать (15.3) или (15,20) можно записать (15, О) или (15, Е) , Теперь с этим крошечным конечным полем это не спадет много, но когда ваши значения 32 байт вы сэкономите много байт. |
28 июня 2014, 1:03:57 AM | # 16 |
Сообщения: 1764
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Да, что граф не делает его ясно, но это одно из свойств, имеющих не только целые значения, но целые значения "над" конечное поле. Цифры "обтекать" когда они идут мимо края поля. Таким образом, в конечном поле над 23 у = -5, если отражение вокруг того, чтобы быть у = 18 (-5 + 23). Из наших патентных троллей Certicom. котировка Обратите внимание, что есть две точек для каждого й значения. Даже если граф кажется случайным, есть еще симметрия относительно у = 11,5. Напомним, что эллиптические кривые над действительными числами, то существует негативный момент для каждой точки, которая отражается через оси х. Над полем F23, отрицательные компоненты в у-значения берутся по модулю 23, в результате чего положительное число как разница от 23. Здесь -P = (Xp, (-yP моделирование 23)) Теперь, потому что у меня было мало, я буду обманывать и просто проверить решения, а не решить проблему. Я хотел бы также отметить, что это хорошее маленькие (и, по сути бесполезный) конечное поле, реальная криптография использует много гораздо больше простых числа. Так давайте рассмотрим (1,5) & (1,18) (У ^ 2)% 23 = (х ^ 3 + X)% 23 (5 ^ 2)% 23 = (1 ^ 3 + 1)% 23 25% 23% 2 = 23 2 = 2, так что раствор (1,5) является действительным. (У ^ 2)% 23 = (х ^ 3 + X)% 23 (18 ^ 2)% 23 = (1 ^ 3 + 1)% 23 324% 23% 2 = 23 2 = 2, так что раствор (1,18) является действительным. Это также показывает, как мы можем использовать сжатые ключи. У ^ 2 означает, что, когда точка существует там всегда будет один отраженный вокруг оси и имеющий конечное поле над простым числом означает, что вы всегда будете иметь ровно один нечетное у значения и ровно один даже у значения в этой паре точек. х = 1, у = {5, 18} = один нечетным & один даже х = 11, у = {10, 13} = один нечетный & один даже х = 15, у = {3, 20} = одно нечетное & один даже Бонусные баллы, если вы можете увидеть, где это происходит. Если вы можете вычислить пару значений у * от х, и они всегда будет четным и нечетным, то вместо того, чтобы писать (15.3) или (15,20) можно записать (15, О) или (15, Е) , Теперь с этим крошечным конечным полем это не спадет много, но когда ваши значения 32 байт вы сэкономите много байт. наконец, в конце концов, в конце концов. теперь это блестящее объяснение. и, наконец, график с осями мечеными правильно и иллюстрирующими, почему мы имеем дело с положительными целыми числами. это не то, что мы действительно имеем дело с здесь, целые числа vs. целых чисел (которые будут включать в себя негативы)? или же тот факт, что это определенно над конечным полем исключить отрицательные числа? другое дело, что меня поражает, когда Eyeballing графа является то, что я думал, что все точки в конечном поле будет иметь симметричную отраженную точку, и я вижу в этом примере точки (0,0), который не имеет отраженную точки ( 0,23). я уверен, что это имеет отношение к модулю 23, который не был бы в этой области, но я не помню, видя все точки на графике, как это без парных точек? ТНХ D&Т. как всегда, очень полезно. |
28 июня 2014, 2:20:15 AM | # 17 |
Сообщения: 1218
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
Корректный для ECC мы всегда работаем с конечным множеством положительных целых чисел, за исключением нуля (иногда называемых натуральных чисел), которые меньше р, назначенным премьера. Для примера выше р будет 23, а в secp256k1 р = 2 ^ 256 - 2 ^ 32 - 2 ^ 9 - 2 ^ 8 - 2 7 ^ - 2 ^ 6 - 2 ^ 4 - 1. Пример графика в то время яснее будет еще лучше, если оно охватывает интервал от 1 до 22 для обоих х и у.
Ноль является исключением и из-за своих уникальных свойств является неподходящим для криптографии. В ECDSA частные ключи должны находиться в интервале [1, п-1] и в подписи значение к должно быть в том же интервале. Если вычисленное подпись имеет значение, равное нулю при г или с, то он является недействительным, и используется новое значение к. |
28 июня 2014, 3:08:12 AM | # 18 |
Сообщения: 247
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
В поле F23, -1 = 22, -2 = 21 и т.д. Для простоты, канонический способ мы называем их, как правило, как натуральные числа, но это не было бы неправильно думать, 22 как -1. Симметрия графа DeathAndTaxes является более очевидным, если вы сделаете это: представьте этикетки, идущие от -1, -2, .. -11, 11, .. 2, 1. Это делает понятным, почему симметрия вокруг 11,5, и, например, почему отражение 10, -10, равно 13 (= 13 -10 мод 23).
|
28 июня 2014, 3:26:58 AM | # 19 |
Сообщения: 1764
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
как это получено ?: р = 2 ^ 256 - 2 ^ 32 - 2 ^ 9 - 2 ^ 8 - 2 ^ 7 - 2 ^ 6 - 2 ^ 4 - 1
|
28 июня 2014, 5:30:16 AM | # 20 |
Сообщения: 2366
цитировать ответ |
Re: Алгоритм для сжатия точки эллиптической кривой
как это получено ?: р = 2 ^ 256 - 2 ^ 32 - 2 ^ 9 - 2 ^ 8 - 2 ^ 7 - 2 ^ 6 - 2 ^ 4 - 1 Это системный параметр, то он должен быть конечным полем, которое имеет размер около 2 ^ 256, чтобы достичь ~ 128 битой безопасности, но меньше, чем 2 ^ 256, чтобы избежать необходимости больше места, чтобы сделать модульные сокращения быстрее выбранный номер является обобщенным Мерсен номер. В случае secp256k1 был выбран, выбирая наибольшее х, что 2 ^ 256 - 2 ^ 32 - х есть простое число. Вы можете искать "обобщенное число Мерсенна" найти Солинас бумагу о том, как области размеров с особой формы текучести более эффективным вычислением. |