Есть walletgenerator.net, работающий локально.И есть возможность выбрать валютудля генерации адреса, после сбора энтропии.И много там валют.И возвращаются в результате, как правило два значения, приватный ключ и адрес кошелька.И есть блокчейны для этих валют, и возможность просмотреть баланс по адресу.Вопрос: возможно ли сформировать транзакции локально, и отправить их в соответствующую сеть с помощью приватного ключа?Кто сколько знает криптовалют которые можно юзать без клиентов, онлайн через их блокчейны?
>>150966 (OP)Блокчейн это бд с данными. Она не умеет в создание транзакций, для этого процесс кошеля нужен, через который все операции и проводятся. А так, оффлайново сгенерировать транзакцию, зная приватный ключ можно для практически любой монеты. И заслать ее потом через процесс кошелька.
>>150983Но блокчейн же вгружает блоки с децентрализованной сети, а значит - имеет с ней связь. Более того, на blockchain.info, при указании приватного ключа, кошелёк добавляется и можно совершать транзакции внутри блокчейна. Значит, блокчейн ещё и может отправлять данные в сеть на обработку, а не только просматривать.Ясное дело, что и одиночный клиент может создавать транзакции и подписывая их своим приватным ключём - отправлять их в сеть напрямую, но нужна программа.Мне же интересно приёмо-передача крипты исключительно онлайн, без этих всяких клиентов в десятки мегабайт, и их цепочек блоков в десятки гигабайт...Вот был, когда-то brainwallet.org, но сейчас почему-то не работает.Так вот, там было что-то наподобие пикрелейтед.
>>150985>блокчейн же вгружает блокиДля особо тугих: блокчейн это бд с данными. Она ничего не умеет, она просто лежит на дисках.Сайт блокчейн.инфо всё перечисленное умеет, но это сайт, работающий с блокчейном, а не сам блокчейн.
Коинососы, есть на примете годные краны? Ну что бы много платили и выплата была небольшой, с меня нихуя.
>>151016Майни, ебанько.
>>151016Ось мои любимые + краны с epay:goo.gl/4Pocgp снизу слеваИ вот 3 брата сатоши-выхрёбывателя, выплата после 6к, за раз 125 сатоши минимумgoo.gl/9VqF3jgoo.gl/WG05Zxgoo.gl/6NTMLC
>>151020А они не хотят адблок. Больше уйдёт за трафик при загрузке рекламы, чем эти сатоши...
>>150985Ты вообще не понимаешь смысл слов, которые произносишь. Вообще, пиздец, поток бреда! Вали обратно в свою чечню!
>>151026>2016>ограниченный трафик
Локалбиткоинс ВСЁ?
>>151020Пасебо
>>151033Во-первых, не произношу, а печатаю.Во-вторых, понимаю.В-третьих, ты что, читать не умеешь?В-четвертых, смотри сам туда не свали.В-пятых, блокчейн - дословно, цепочка блоков.Блоки на диске. Речь идёт же идёт о blockchain.info и ему подобным сайтам для онлайн переводов имея лишь приватный ключ.
>>151036Нет, не всё. На walletgenerator.net, помимо биткоина - есть ещё куча разных валют.Интересует сама технология создания и подписи транзакций приватным ключем с возможностью отправить транзакцию в сеть.
>>151035А если я капчую морзянкой по радиоканалу через телефонный модем в 56кбит/сек, с батискафа в Тихом океане?
>>151055Так гугли формат транзакций и создание raw транзакций через консоль, хотя бы для биткоина. Берешь, создаешь и отправляешь любому узлу сети, дальше она рассылается сама и включается в блок.
>>151056Я вас помню, кстати...
>>151058Ну так для консоли надо прогу ставить, а интересно онлайн, типа пикчи >>150985
>>150966 (OP)Смотрите прикол.http://directory.io/904625697166532776746648320380374280100293470930272690489102837043110636674Как им удалось на одном сайте разместить904625697166532776746648320380374280100293470930272690489102837043110636675 страниц?Можете посчитать сами, сколько это в байтах...
>>151107Никак, страницы генерируются на лету.
>>151107Т. е. 904625697166532776746648320380374280100293470930272690489102837043110636674 всего лишь берется в качестве префикса для генерации приватных ключей?Вижу в адрес ссылки каждого ключа входит http://directory.io/warning:understand-how-this-works!/5Km2kuu7vtFDPpxywn4u3NLpbr5jKpTB3jsuDU2KYEqeXFitbFU
>>151107Ёбнутый, блядь.
чё за говно с рипплом?
>>150985Вот, нашёл.http://wallet-2sx53n.sakurity.com/#converterВ правом нижнем углу - можно скачать в зипе JS.Работает локально.>>150966 (OP)Вот есть, значит, ECDSA.И есть пара ключей, приватный ключ и закрытый ключ.И формат приватного ключа Base58Check.И есть биткоин-адрес, полученный из открытого ключа по пикрелейтед схеме.И не светится открытый ключ в адресе, а Ripemd160 его sha256-хеша.Есть возможность подписать сообщение приватным ключем, и проверить подпись.Вопрос. Можно ли использовать открытый и закрытый ключи для шифрования сообщений приватным ключем и расшифровки их публичным с помощью ECDSA?И если да, то как?
>>151178>можно скачать в зипе JS. Работает локально.Не-а. Closed PermanentlyВот, ещё тот старичёк brainwallet, на рыгхосте:http://rgho.st/6LCyRbn5L
>>151178>приватный ключ и закрытый ключ.Это одно и то же. Более того, в ECDSA публичный ключ можно выдернуть из приватного.>Можно ли использовать ... для шифрования сообщенийНельзя, DSA алгоритмы могут только подписывать\валидировать подпись. Это не RSA.>>150985Обладая приватным ключем можно на любом ПК создать транзакцию и подписать её. Потом в виде json перенести транзакцию на онлайн тачку и транслировать в биткоин-сеть. Такой подход позволяет хранить ключи на машинах, вообще не подключенных к инету.
>>151185>Это одно и то же. Более того, в ECDSA публичный ключ можно выдернуть из приватного.Ну, давай, раз такое дело, зайдём на http://wallet-2sx53n.sakurity.com/#generatorи вобьём туда любой приватный ключ, например 5JBeeb8eAurr2w2LGVGp5Kh4Gph3RLDtYshUUcRmMLE4GmZNDNv,и посмотрим соответствующий ему публичный ключ 0468ee4a73cc3dfb44f80fd33c22e97c1a458729dad2b924910d5b6c927afd36a3947d8033f36ef687b9c3456d2419739a5a4afcbb68f555d1fd7685ef84c650bb.Теперь, проследуем в http://wallet-2sx53n.sakurity.com/#converter, и сконвертируем приватный ключс base64Check -> в hex, получая вот это 30820113020101042041020101a14403420004a34b99f22c790c4e36b2b3c2c3.Итак, получилось 32 байта. А длина публичного ключа - 65 bytes.А теперь, скажи, как из приватного ключа можно выдернуть публичный.Алсо, на пике >>151178 ты можешь увидеть аж два 32-байтных числа, входящих в публичный ключ.Такой вопрос напрашивается ещё...Действительно ли публичный ключ единственный для конкретного приватного ключа.
>>151190Ты такие вещи читать можешь?https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addressesНаверняка у тебя в публичном только точка x, вместо (0x04,x,y). y вычисляется по x при заданной кривой.Ключ единственен, адресов биткоин два.
>>151193Таки-да. Но там не показано, как вычисляется x.Поэтому, я тут в параллель, JS brainwallet'a всковырнул, и что я вижу?..gen_pt = curve.getG().multiply(eckey.priv);Pub же имеет два представления:1. Uncompressed - константа 0x04 (признак полной записи),+ два набора по 32 байта, которые описывают координаты точки x и y.2. Compressed - координата x.Поскольку x и уравнения кривой достаточно для восстановления координаты y и при восстановлении возникает неопределенностьв четности восстанавливаемой координаты y - в байтовом виде compressed-public содержит 33 байта,первый из которых представляет собой одну из двух констант 0x02 или 0x03(признак короткой записи и указание на четность),за которым следуют 32 байта координаты x точки.
>>151193>Наверняка у тебя в публичном только точка x, вместо (0x04,x,y).Я же его оставил, выше.
>>150966 (OP)>Кто сколько знает криптовалютПросто оставлю это здесь:42coinAcoinAlphacoinAnimecoinAnoncoinApexcoinAuroracoinBBQcoinBitcoinBitcoinDarkBirdcoinBlackcoinBlackJackBunnyCoinCanadaeCoinCannabisCoinCapricoinCassubianDetkCashCoinCatcoinCorgicoinCryptoBullionCryptoClubCryptoescudoDashDeafDollarsDevcoinDigitalcoinDogecoinDogecoinDarkeGuldeneKronaEmercoinEnergyCoinFastcoinFeathercoinFibreFluttercoinFreicoinFUDcoinFuelcoinFujicoinGabenCoinGlobalBoostGoodcoinGridcoinResearchGuldenGuncoinHamRadioCoinHTML5CoinHyperStakeImperiumCoinIncognitoCoinInfluxcoinIridiumCoiniCashiXcoinJudgecoinJumbucksLatiumLitecoinLiteDogeMagicInternetMoneyMagicoinMarscoinMarteXcoinMasterDogeMazacoinMegacoinMobiusCoinMonetaryUnitMonocleMoonCoinMyriadcoinNameCoinNeoscoinNovacoinNubitsOcupyOmnicoinOnyxcoinPaycoinPandacoinParkBytePesetacoinPHCoinPhoenixCoinPeercoinPotcoinPrimecoinQuarkReddcoinRiecoinRimbitRubycoinSambacoinSecKCoinSibCoinSongCoinSpreadCoinStealthCoinSyscoinTitcoinTittieCoinTopcoinTransferCoinTreasureHuntCoinUnobtaniumUSDeVertcoinViacoinVikingCoinW2CoinWankCoinWeAreSatoshiCoinWorldCoinZetacoin
>>151198И Ethereum ещё.
>>151185>приватный ключ и закрытый ключ.Имел в виду открытый. Паблик кей.>Это одно и то же.ok.>>Обладая приватным ключем можно на любом ПК создать транзакцию и подписать её. Потом в виде json перенести транзакцию на онлайн тачку и транслировать в биткоин-сеть. Такой подход позволяет хранить ключи на машинах, вообще не подключенных к инету.Ok.>Более того, в ECDSA публичный ключ можно выдернуть из приватного.ok. Через G.>DSA алгоритмы могут только подписывать\валидировать подпись. Это не RSA.Ok.Однако ECIES (или ECDH) жи есть.Могут ли эти фичи работать с ключами формата ECDSA?priv - 32 byte, и pub(x, y) - по 256 bit.Ну, чтоб в крайнем случае - просто выдернуть эти числа из ключей.
>>151200Вот, ещё нарыл инфы:y^2 = x^3 + 7 mod P,где P = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f, простое.Gx = 55066263022277343669578718895168534326250603453777594175500187360389116729240,Gy = 32670510020758816978083085130507043184471273380659243275938904335757337482424,координаты G.(Gx^3+7) mod p = 32748224938747404814623910738487752935528512903530129802856995983256684603122(Gy^2) mod p =32748224938747404814623910738487752935528512903530129802856995983256684603122y = sqrt(x^3+7) (mod P) - два значения y1 и y0, положительное и отрицательное.При этом, y1 = P - y0, и т. к. P - простое, нечётное, то один результатов нечётный, а другой - четный.Указание чётности в первом байте compressed-адреса даёт возможность однозначно восстановить y по x.privatekeyG = publickey, вот тут что?!!k G doesn't mean (k Gx, k Gy)X=Gxpriv mod pY=Gypriv mod pI understand '*' is this http://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication operation.Взято отсюда, https://bitcointalk.org/index.php?topic=456737.0но там непонятно нифига.
>>151204Точки эллиптической кривой над конечным полем представляют собой группу.Для этой группы определена операция сложения.Мы можем представить умножение числа k на точку G как G+G+..+G с k слагаемыми.C=MG.The way to do multiplication is "double and add".You start with G and double it. That gives you 2G. You double again and get 4G and then 8G and so on.You do this until you have 256 numbers.A private key is just a number, and you multiply it by G.If your private key was 25, then you would do it like this25 = 11001 (in binary)25 = 16 + 8 + 125 G = 16 G + 8 G + 1 * GYou can work out 16G, 8G and G by just doubling G over and over. You then add them together.16G + 8G + G = 25GТолько вот, как это сделать, если имеется две координаты?..
>>151205Запишем сложение двух точек в виде формулы: пик1.Пусть координатами точки P будут (xp, yp), а координатами точки Q соответственно (xq, yq).Вычислим пик2.И тогда координаты точки P+Q будут равны: R(пик3, пик4).Взято с хабра https://habrahabr.ru/post/188958/Ну ок...xp = xq = Gxyp = yq = Gyα = (Gy-Gy)/(Gx-Gx) = 0/0 (неопределённость).Пускай будет ноль.2G = G+G;2G(-2Gx, -Gy)Всё верно?
>>151205>25 = 11001 (in binary)>25 = 16 + 8 + 1>25 G = 16G + 8G + 1G>16G + 8G + G = 25GКороче, чтобы получить координаты точки pub(Xpub, Ypub) из priv,priv бьётся по битам,эти биты читаются с конца, и первый разряд - нулевой,Там где бит 0 - ноль пропускается,а там где бит 1 - приписывается 2^N, где N - номер разряда минус 1 (т. к. первый разряд нулевой),и точка G удваивается N раз.Максимум - 2^255, т. е. 255 удвоений точки G,а потом суммирования всех этих удвоенных точек.Потому что, 25 = 11001 (in binary) = 2^0 + 0^1 + 0^2 + 2^3 + 2^4 (с конца читаем бинарник).Так как координату Ypub можно вычислить из P, значит можно её не учитывать в вычислениях, а оперировать только x-ом. Правильно?
>>151190>>151193Охуеть, что случилось с моим /cc/? Двое людей знают матчасть, и ни один из них не я, то есть всего как минимум трое.Исход трейдеропетушков явно пошёл на пользу.
>>151249>как минимум троеМожет, чуток больше?
>>151240Well, you have to start with "G". This point counts as the equivalent of 1.This point isGx = 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798Gy = 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8DoubleYou can double a point (x, y) using the doubling formulap = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F num = 3 x x mod pdem = 2 y mod plambda = num modInverse(dem) mod pRx = (lambda lambda) - 2 x mod pRy = ((x - Rx) lambda) - y mod pThe result is (Rx, Ry)AdditionYou can add 2 points (x1, y1) and (x2, y2) using p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F num = (y1 - y2) mod pdem = (x1 - x2) mod plambda = num modInverse(dem) mod pRx = (lambda lambda) - x1 - x2 mod pRy = ((x1 - Rx) lambda) - y1 mod pMultiplicationThe way to do this is "double and add".You start with G and double it. That gives you 2G. You double again and get 4G and then 8G and so on.You do this until you have 256 numbers. You add some of them together using the add formula. You only include numbers where that bit is one in the binary representation.There is info on wikipedia, but the formalas are broken at the moment.This page has the 2 formulas.A private key is just a number, and you multiply it by G.If your private key was 25, then you would do it like this25 = 11001 (in binary)25 = 16 + 8 + 125 G = 16 G + 8 G + 1 GYou can work out 16G, 8G and G by just doubling G over and over. You then add them together.16G + 8G + G = 25GLike I said, it is pretty complex and will take a while to actually compute. The modular inverse function is slow.При Gx1 = Gx2 и Gy1=Gy2Addition не равно Double и G+G не равно 2G,так как лямбда нум и дем уходят в нуль.Хрень какая-то...
Седня по первому каналу про криповалюты говорили в "добром утре"
>>151259Лучше бы говорили про манипуляции с точкой G, по эллиптической траэктории.
>>151260Годная шуточка, нужно запомнить.
>>151204>y = sqrt(x^3+7) (mod P) - два значения y1 и y0, положительное и отрицательное.При этом, y1 = P - y0, и т. к. P - простое, нечётное, то один результатов нечётный, а другой - четный.Указание чётности в первом байте compressed-адреса даёт возможность однозначно восстановить y по x.А смотрите какая вилка:1. y2 = (x3 + 8x + 5) mod 293 - уравнение кривой.2. Точка на этой кривой.3. Координаты точки x = 29; y = 127;4. Точка принадлежит кривой:(x3 + 8x + 5) mod 293 = 24626 mod 293 = y^2 mod 293 = 127^2 mod 293 = 16129 mod 293 = 14;Однако, sqrt(x3 + 8x + 5) = ±156,92673449734433316074944334497 ≠ 127, а mod 293 ≠ 14 = 17 и 37(если округлить до 157);В чём дело? Вопрос, возможно ли однозначно вычислить y по x, или нет?
>>151276>sqrt(x3 + 8x + 5) = ±156,92673449734433316074944334497 ≠ 127>В чём дело?Проиграл. Добро пожаловать в увлекательный мир вычислений в полях классов вычетов по простому модулю.Следи за пальцами:x = 29y = 127x3 + 8x + 5 = 293 + 8 x 29 + 5 = 24626 = 84 x 293 + 14 ≡ 14 mod 293y2 = 1272 = 16129 = 55 x 293 + 14 ≡ 14 mod 293Здесь нельзя просто так вычислить корень, а никаких округлений быть не может. Читай теорию чисел, лолка.
>>151284Ну, я так понимаю, чтобы получить реальную координату Y(127)- надо не извлекать корень из вот этого кубического многочлена,а вычислить с него модуль 293,и прибавлять к этому модулю 293 до тех пор, пока не получится квадрат.Корень из этого квадрата и есть Y,при условии, что Y - натуральное число. (А если нет?)И вот ещё, Y ≠ sqrt(x^3 + ax + b) (mod P),т. к. уравнение проверки принадлежности точки эллиптической кривой - имеет вид:Y^2 mod P = (x^3 + ax + b) mod P.Y^2 mod 293 = (29^3 + 8X + 5) mod 293;(29^3 + 8X + 5) mod 293 = 14;Y^2 mod 293 = 14;14+293 x 55 = 16129 - квадрат;Y = корень из 16129 = {127, -127}127^2 = 16129 mod 293 = 14;16129 - 14/293 = 55 - количество прибавлений числа P к модулю кубического многочлена от P;Да, это всё хорошо и прекрасно, но смущает число 55, т. е. количество прибавлений P к модулю в этом случае.При условии работы с 256-битными числами - этих прибавлений может быть over9000,и поиск Y таким образом, наверное, будет проще заменить его брутфорсом вероятностным, подобно 1-му пикрелейтед.Алсо, почитал о Cipolla's algorithm и ваще... Мягко-сказать, запутался... Пришлось поднагадить вопросами на странице обсуждения этого алгоритма, в википедии.Что ещё?.. А, вот!..Y = корень из 16129 = {127, -127} пик 2.Положительное и отрицательное. Оба - нечётные.А должно быть четное и нечётное, ибо >>151276>y1 = P - y0Или этих игриков 4?..
>>151285Пик2 отклеился.
>>151285>Y = корень из 16129 = {127, -127} пик 2.>Положительное и отрицательное. Оба - нечётные.-127 ≡ 166 mod 293А вообще, хуйню несёшь, хохол. Просто хуйню, полнейший бред, не имеющий связи с реальностью.Я тебе сказал, читай теорию чисел, вычисление в полях классов вычетов по простому модулю.
>>151287-127 ≡ 166 mod 293Вот, теперь понятно. 166 - нечётное, 127 - четное.-50 mod 11 = 5Потому что -50 + 5 x 11 = 5 mod 11 = 5;-50 mod 11 не равно -50/11 = 4 x (11) x [-6], потому, что кольцо. Хотя на калькуляторе - так.Ну да ладно.>читай теориюНачто мне целая теория,если стоит задача найти 256-битный Y,по известному x, уравнению кривой, и a, b и P.Вот, например, здесь: бит.ly / 2eiwbGqСообщение m, кодируется точкой Pm, которая имеет две координаты.Код сообщения M может быть числом, являющимся координатой x.Значит, надо вычислить y!Ну и ещё вот, пример.Есть публичный ключ биткоина, compressed, с одной координатой.И есть его хеш, соответствующий одному из адресов.Вычислив y - нужно получить второй адрес.Как будешь поступать в случае 256-битных чисел,с этой своей теорией чисел, холоп?
>>151288>Как будешь поступать в случае 256-битных чисел, с этой своей теорией чисел, холоп?Точно так же, как и с любыми другими, дурачок. Минимальная матчасть нужна, чтобы ты понимал, о чём говоришь, а не пытался брать корень привычным методом, оперировать с рациональными числами на множестве натуральных и не совершал другие подобные ошибки.Когда заботаешь её, то бери любой биндинг к openssl и считай, дело пары часов при совсем кривых руках. Если у тебя аллергия на матан, можешь брать прямо сейчас: быстрее обосрёшься — быстрее сдашься. А ещё можешь попробовать заюзать какую-нибудь библиотеку непосредственно для биткоина.
Кто-ниудь пытался искать коллизии в sha256?
Например дано 32 битное число, над ним производят операцию rotr 18 ^ rotr 7 ^ shr 3. Можно ли выполнить обратную операцию?
>>151302Пошел нахуй пидор
Началось.
>>151310#altsbareback
>>151302#define SHR(x,n) ((x & 0xFFFFFFFF) >> n)#define ROTR(x,n) (SHR(x,n) | (x << (32 - n)))После того, как обратишь - можешь прислушаться к этому: >>151309
>>151291>Минимальная матчасть нужна>чтобы ты>не пытался брать корень привычным методом√a^2, он и в Африке {a, -a};Как взять результат из отрицательного числа по модулю, я уже понял:-a mod p = |(|a| mod P) - P|>оперировать с рациональными числами на множестве натуральныхА это, где?>в случае 256-битных чиселОни, по определению, целые, положительные.
>>151312Че ты мне реализацию написал, ты мне напиши обратную операцию или объясни почему этого нельзя сделать или расскажи сюрьекцтивна, биктивна или есть ли у нее взамиооднозначное соответствие между входом и выходом__________________________________________Еще раз для танкистов, дано 32 битное число x.Сдвигаем x rotr 18, x rotr 7, x shr3. Ксорим между собой три получившихся числа. Получаем ответ. Вопрос: можно ли не зная исходного числа, только из ответа получить исходное число? То есть выполнить обратную оерацию.
>>151315#define S0(x) (ROTR(x, 7) ^ ROTR(x,18) ^ SHR(x, 3))#define S1(x) (ROTR(x,17) ^ ROTR(x,19) ^ SHR(x,10))>Ксорим>три>числаУже нет, потому что надо знать на что идёт xor.a xor b = c; прямаяc xor b = a; обратная для ac xor a = b; обратная для bА у тебя только c;Ещё бы спросил, как получить e,f,g,h,x,K при известном temp1 и его формуле:temp1 = h + S3(e) + F1(e,f,g) + Kx;Хеши - надо брутфорсить. Лол.
>>151315Обозначим биты x как b0, b1, ..., b31После этих трех операций получится всего четыре числа, каждое из которых записывается через bi (например после rotr 1 будет b31b1b2...b30).Далее ксорим все 4 числа и получаем новое a0a1a2...Получается система вида bi xor bj xor bk xor bl = an, где an известны, а bi- нет. Каждое уравнение решается, только если известны все переменные, кроме одной, как и для обычных уравнений. Впринципе, мы имеем 32 уравнения и 32 неизвестных и все должно решаться, если нет вырожденных уравнений, т.е. когда одно типа a xor b xor c, а другое - b xor a xor c, потому что это одно и то же. Я думаю, проверка в лоб может показать, решается ли или нет.
>>151319b31b0b1...b30 конечно же.
>>151319Кстати 32 битное число реально просто сбрутить.
Вот я кратенько набросал чего хочу
>>151323>биты результата>6>30>17>31>32 байта в 256 битахПросто оставлю здесь, для тебяFF = 11111111 = 2^8 = 256;Ну и... 2^256 заодно.
>>151324> разбить кусок на 16 слов длиной 32 бита
>>151324К чему это вообще здесь, ты тип намекаешь на то что невозможно или что. Хоть объясняй
>>151323А ты не потерял 2, 1, 0 в начале shr3 или там нулевые значения в результирующем 32-битном слове?>>151324Сори, принял пронумерованные биты за байтовые значения.
>>151327Да там 0, их нет смысла писать x^0 = xЯ же написал
>>151326256 бит = 2^256 комбинаций = 115792089237316195423570985008687907853269984665640564039457584007913129639935 вариантов = 37352286850747159814055156454415 MIPS-лет
>>151330А как это относится к моей задаче. Я же не буду в лоб перебирать, так как ты думаешь
Или например так
>>151323>там нули>при xor числа с одинаковой позицией дают 0C чего взял?>xor с нулём ничего не даёт1 xor 0 = 1;
>>151323Должен, но слишком муторно. Решение системы, которую я описал выше, методом Гаусса по модулю 2, например, сработает всегда, и даст либо уникальное решение, либо бесконечный набор решений. Формулу для каждого бита может дать метод Крамера, но я не знаю, как его применять в случае модуля 2.
>>151334Я так понимаю, ты хочешь вычислить все множества результатов при вполне определённых, конкретных битах на входах, верно?При этом, прописав эти множества в виде формул и законов в своей проге, для однозначного определения конкретных бит, исходя из заданного результата, входящего в эти множества. Так?Но, всё-равно - ты получишь только отдельные биты входного значения, а не результат.Ведь, на вход sha256 может быть подан файл, а не строка.
>>151253>P = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFпффффффф
>>151336http://coub.com/view/9aq9i
>>151323Ты хочешь биткойны майнить sat-солвингом чтоле? Не взлетит, CNF на 4-5 раундов sha2 уже выжрет несколько терабайт.
>>151253дабл и адд - разные операции.адд - только для точек с разными координатами.Если точки одинаковые, то только дабл.
>>151194>восстанавливаемой координаты y>>151193>Наверняка у тебя в публичном только точка x, вместо (0x04,x,y). y вычисляется по x при заданной кривой.>>151284>Следи>теорию чисел>>151285>поиск Y>>151287>вычисление в полях классов вычетов по простому модулю>Cipolla's algorithm>Решаем сравнение по модулю>Если сравнение имеет решение – квадратичный вычет по mod p – , то имеются два значения y>Символ Лежандра>надо вычислить y!>надо прибавлять P>пока не получится квадрат>Потом>вычислить корень.>в случае 256-битных чисел>количество прибавлений>Максимум>2^256>37352286850747159814055156454415 MIPS-лет>ECDSA, ECIES, ECDH.Ну, хорошо.Пускай точки на эллиптической кривой получаются только путём операций с генераторной точкой.Дабл и адд. К этим двум операциям, с применением мультипликативных и аддитивных инверсий по модулю - сводится умножение, суммирование, вычитание, получение координат обратной точки с координатой (x, -y mod P), и...Деление? Ведь a/b mod P = a x (b^-1 mod P) mod P. И пускай, есть сообщение r, и соответствующая ей точка rP(x,y).Задача - получить r из координат точки rP.Это что? Надо разделить rP на P?? Что будет в результате? Число??? Или точка?!!Это что, исходя из пикрелейтед надо каждый char кодировать? Или бит? А как декодировать?Судя по исходникам, эти ваши ECIES и ECDH тупо юзают AES, а не ECC.
>>151341Причём симметричный AES, где key - это sha256 от координат точки S полученной от ECDH.
Ньюфаг в треде. Подскажи где можно купить биткоины по выгодному курсу?
>>151333#31 = 6-й бит ^ 13-й бит ^ значение 0 = 6 бит ^ 13 бит
>>151334Тыкни пожалуйста где ты написал
>>151335Я хочу обратить операцию >s0 := (w[i-15] rotr 7) xor (w[i-15] rotr 18) xor (w[i-15] shr 3)Из алгоритма хешированияhttps://ru.wikipedia.org/wiki/SHA-2Не более.Вот здесь >>151332 таблица, числа 0, 1, 2...31 над чертой это порядковые номера бит получившегося s0, числа под чертой, например 7, 8, 9,... это порядковые номера бит w[i-15], т.е первая строка под чертой (rotr7 справа) это w[i-15] сдвинутая на 7, втроая строка - w[i-15] сдвинутая на 18, третья- w[i-15] сдвинутая на 3 (я замечу что shr и rotr отличные операции). Так вот получается чтобы получить бит с порядковым номером 0 у s0, нужно поксорить 7, 18 и 3 биты у w[i-15], чтобы получить 1 бит s0, нужно поксорить 8, 19 и 4 биты w[i-15] и т.д. Напомню что задача состоит в нахождении w[i-15] по известному s0. Так вот, можно записать #0 = 7 ^ 18 ^ 3 (# рядом с нулем обозначает что бит с этим порядковым номером принадлежит s0). Так вот теперь можно выразить 7 = #0 ^ 18 ^ 3. Теперь мне нужно так подставить числа, чтобы справа остались только числа с # - то есть выразить например 7 бит через биты s0. И так для всех бит w[i-15]
>>151338Спасибо, почитаю по этой теме. Я хочу обратить sha256 хеш. То есть по хешу искать строку, хеш от которой есть исходный хеш. y = sha256(x), мне нужно найти x зная y. Суть в том, что размер хеша фиксирован и составляет 256 бит. А размер x может быть любым, то есть возможны коллизии
>>151343btc-e.com
>>151347Так и гугли сразу sha256 preimage attack, велосипедить-то зачем?
>>151341>есть сообщение r, и соответствующая ей точка rP(x,y).>Задача - получить r из координат точки rP.Ебать ты молодец. Это вообще-то задача, на вычислительной сложности которой строятся криптосистемы на эллиптических кривых. k — приватный ключ, kG — публичный. Если бы можно было просто так вычислить k из kG, как думаешь, стали бы этот алгоритм использовать в битке?>>151347>Я хочу обратить sha256 хеш.Впрочем, судя по всему, тут просто поехавших завезли. А я чёто сперва подумал, что это разговор только умных людей.Деление для EC и обратных хеш им подавай, пиздец просто, охуительные истории.
>>151350Ну а вдруг у него получится и он сюда запостит. Можно будет резко продать квартиру - зашортить биток на все плечи, потом остров купить.
>>151350>k — приватный ключ, kG — публичный.Внатуре, только сейчас догнал это.>Если бы можно было просто так вычислить k из kG, как думаешь, стали бы этот алгоритм использовать в битке?Ну, публичный ключ не светится же в битке, а только: бейс -> рипемда -> ша -> его.>Деление для EC>им подавайНу, ты что, внатуре предлагаешь,для реал ЕСС асимметричной - каждый бит с точкой ассоциировать,чтоб закодить этими точками сообщение rиз пикрелейтед >>151341и гнать эти точки по открытому каналу в виде шифротекста, а именно - 256-битных x-ов + 256-битных y-ов для каждого бита?Или, раз уж на то пошло, может лучше уже сразу массивы байтовых комбинаций прописать в ассоциациях?Ну а как, тогда, по-другому,достать Бобу открытый текст, закодированный в точку на EC?
>>151353>публичный ключ не светитсяИногда светится, миллионы Сатоши лежат на p2pk адресах.
>>151353>и гнать эти точки по открытому каналу в виде шифротекстаТогда ничто не мешает вскрыть исходник и по таблице соответствий восстановить m.Совсем другое дело - если rP шифруется, и получается в результате декрипта.Тогда, имеет смысл прописывать соответствия rP значению бита/байта исходного текста r,Чтобы его извлечь-таки из rP.И раз уж открытый текст r - лишь множитель генераторной точки, а операция деления точки на точку отсутствует, то разумеется, этот множитель может быть связан с координатами кодируемой точки открытого текста rP - только ассоциативно.Значит, нужно указать все возможные соответствия всех возможных результатов умножения открытого текста на P всем возможным входным значениям r (или их компонентам). Имеет ли это смысл при длине блока входящей инфы от Алисы в 256-бит?
>>151350Что такое деление для ЕС
>>151356Операция, обратная сложению удвоенных точек в порядке возрастания и в соответствии с битовой последовательностью числа-множителя в бинарном виде.
>>151357Бля, тебе за знаки что ли платят? Это умножением назыается.
>>151358Какие такие, знаки?>Операция, обратнаяУмножению точки на числовую константу.Потому что точку на точку умножать неизвестно как.
>>151353>публичный ключ не светится же в биткеСветится, при отправке ты его должен вписать в транзакцию, иначе её никто не сможет проверить.>>151356>Что такое деление для ЕСПикрелейтед. Операция, обратная умножению точки на число, ага. Преобразование (kG, G) -> k. Вычислительно сложное настолько, что не существует известных алгоритомов, позволяющих осуществить её быстрее, чем перебором всех возможных значений.Наверное.
>>151346> Я хочу обратить операцию>s0 := (w[i-15] rotr 7) xor (w[i-15] rotr 18) xor (w[i-15] shr 3)Еще раз:Исходное число: w32w31w30...w2w1После rotr 7: w7w6...w1w32...w8После rotr 18: w18w17...w1w32...w17После shr 3: 000w32w31...w4После xor пусть получается число a32a31a30...a2a1гдеa32 = w32 ^ w7 ^ w18a31 = w31 ^ w6 ^ w17...a1 = w1 ^ w8 ^ w17 ^ w4a32, a31, ..., a1 известныw32, w31, ..., w1 - неизвестные, их надо найти, 32 переменныхВыше записано 32 уравнения. Если среди них нет зависимых, то система всегда решается и дает тебе ответ. Например, методом Гаусса со всеми операциями по модулю 2. Если есть зависимые, то будет набор решений. Полагаю, может быть и так, и так, зависит от w.
>>151364На простом примере:надо обратить x xor (x ror 1), где x - 4битовыйПусть x = 0101x ror 1 = 1010x xor (x ror 1) = 1111, это исходные данные.Теперь x неизвестен.x = x4x3x2x1x ror 1 = x1x4x3x2x xor (x ror 1) = 11111 = x4 ^ x1 (^ - xor для краткости)1 = x3 ^ x41 = x2 ^ x31 = x1 ^ x2В матричной форме:1001|11100|10110|10011|1Например, первая строка означает 1x4 ^ 0x3 ^ 0x2 ^ 1x1 = 1 (mod 2)Одно зависимое, выкинем:1100|10110|10011|1x3 ^ x4 = 1Либо x3 = 0, x4 =1, тогда решая дальше получим 0101либо x3 = 1, x4 = 0, тогда получим 1010.Оба ответа подходят для x xor (x ror 1) = 1111.Следуя этой логики можно перейти к любой битности и любым хэшам. Только зачем, вот вопрос.
>>151365> логикилогике
>>151363>ты его должен вписатьС чего бы это в ECDSA?https://ru.wikipedia.org/wiki/ECDSA#.D0.92.D1.8B.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D1.86.D0.B8.D1.84.D1.80.D0.BE.D0.B2.D0.BE.D0.B9_.D0.BF.D0.BE.D0.B4.D0.BF.D0.B8.D1.81.D0.B8
>>151369Ой, сори, в следующем же разделе, не узрел открытого ключа Q.
>>151364Да именно это, теперь можно пытаться решить подставляя одно уравнение в другое и пытаться найти зависимости, которые однозначно укажут как n-й бит w зависит от битов a. Ладно, можно попробовать не искать прямой ответ вида: wn = ax ^ ay ^ az ^ ... (где n, x, y - порядковые номера битов). Но что если найти множество уравнений вида: wn = ax ^ ay ^ az ^ ... ^ wj (где n, x, y, j - порядковые номера битов, где wj - один операнд с типом w. То есть после этого можно записать:wn = res_a1 ^ wj ( где res_a = ax ^ ay ^ az ^ ... )wn = res_a2 ^ w(j+1)mod32...wn = res_a32 ^ w(j+31)mod32И так для n от 1 до 32. А уже после их проанализировать и составить зависимости. Я например нашел некоторые зависимости, что мешает найти их большую часть и исключить неопределенность определения бита(то есть найти однозначную зависимость одного бита от другого как я написал выше)>>151365Как ты получил матричную форму? Как ты определил зависимое?
>>151371Попробуй заполнить эти свои строки битов для ротра и шифта - единицами.И пропустить потом, циклом через каждый бит первой строки - ноль, глядя на то, какие биты изменяется у шр3.А потом, через каждый бит второй строки, третьей... Так?
>>151371Не надо пытаться подставлять, эта система всегда решается за 2 прохода. Другое дело, что уже на этапе одного такого преобразования возникают коллизии.Зависимое есть, т.к. детерминант матрицы1001110001100011равен 0.
>>151372В одном столбике не может быть нечетного числа нулей
Ладно, я понял, почитаю метод Гаусса
>>151365>x xor (x rotr 1) = 1111>x1 = 0101, x1 rotr 1 = 1010; 0101 xor 1010 = 1111>x2 = 1010, x2 rotr 1 = 0101; 1010 xor 0101 = 1111Это хотел сказать?
>>151365x = 1100 = x3x2x1x0x rotr1 = 0110y = x ^ (x rotr1) = 1010 = y3y2y1y0y3y2y1y0---------x3x2x1x0x0x3x2x1y0 = x0 ^ x1y1 = x1 ^ x2y2 = x2 ^ x3y3 = x3 ^ x0_____________x0 = y0 ^ x1 = 0 ^ x1x0 = y0 ^ y1 ^ x2 = 1 ^ x2x0 = y0 ^ y1 ^ y2 ^ x3 = 1 ^ x3x1 = y1 ^ x2 = 1 ^ x2x1 = y1 ^ y2 ^ x3 = 1 ^ x3x1 = y1 ^ y2 ^ y3 ^ x0 = 0 ^ x0x2 = 0 ^ x3x2 = 1 ^ x0x2 = 1 ^ x1x3 = 1 ^ x0x3 = 1 ^ x1x3 = 0 ^ x2Пусть x2 = 0:x3 = 0x0 = 1x1 = 1x3x2x1x0 = 0011 - первый ответПусть x2 = 1:x3 = 1x0 = 0x1 = 0x3x2x1x0 = 1100 - второй ответОба удовлетворяют если подставить1010 = 1100 ^ (1100 rotr1)1010 = 0011 ^ (0011 rotr1)
>>151377А посмотри, что у меня:31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|00|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1| x input1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0| x1 rotr70|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1| x2 rotr130|0|0|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0| x3 shr31|1|1|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1| output x1^x2^x3Результат - побитово равен части x2;
>>151365Я понял>1x4 ^ 0x3 ^ 0x2 ^ 1x1 = 1 (mod 2)гениально, нули же ничего не дают, то же что и x4 ^ x1>Либо x3 = 0, x4 =1Здесь достаточно взять x3 = 0 или 1, x4 получится "само"Если x3 = 0, x4 = 1, x2 = 1, x1 = 0: получится 1010>Следуя этой логики можно перейти к любой битности и любым хэшам. Только зачем, вот вопрос. Вот здесь не понял вопроса, что значит перейти к любой битности, в твоем примере ты получаешь 2 ответа, это значит что для каких-то двух x, результат x xor (x ror 1) будет одинаковым, а значит функция сюръективна. Не факт что моя функция сюръективна
>>15137831|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|0|0|0|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|0|0|0|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|__________________________________________________________________________________31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
>>151380Однако, вот:31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|1|1|0|0|0|0|0|0|0|0|1|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|1|1|0|0|0|0|0|0|0|0|0|0|0|0|1|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|1|1|0|1|1|1|0|0|
>>151378>>151380>>151381Ну да, видно что-то, но к чему это?
>>15138131|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|__________________________________________________________________________________
>>151382Чтобы ты увидел, это.
>>151363Ну, вот есть у тебя kG, и есть у тебя k.Разве нельзя kG разелить на k/2 и получить 2G?
>>151384Ну то что результат не особо отличается (а вернее он просто сдвинут) но задачу это не решает. Для "некрасивого" набора бит вида0101 0010 0001 0101 0011 1010 1110 0110 не проследишь
>>151386Задай набор из 32-х бит, я прослежу.Я уже и говнокод на пыхэпе настрочил для этого.
>>151387Да зачем, я тоже настрочил, а смысл, это бред. Нужно искать правила как один бит зависит от других
>>151387Ты мне обратную функцию найди
>>151388>как один бит зависит от другихА вот так вот:a|b|c|a^b^c0|0|0|10|0|1|10|1|0|10|1|1|01|0|0|11|0|1|01|1|0|01|1|1|1
>>151391>0|0|0|1Не правильно
>>151389>расскажи сюрьекцтивна, биктивна или есть ли у нее взамиооднозначное соответствие между входом и выходомФункция, обратная тройному xor - многозначна? Очевидно же.Через обратный shr и rotr ты можешь сузить количество её значений.
>>151392Да. Там 0.
>>151393Так именно, суть в том что там 2 rotr и shr и им всем надо удовлетворить.
Ладно, короче, буду решать по своему методу, никто не в силах
>>151395ну так пропиши по 4 варианта входных значений для каждого бита результата тройного xor,и сопоставь затем их так, чтобы если результат не накладывается при обратном rotr и shr - чтобы выбирался другой.
>>151385Имелось в виду деление точки на числовую константу.Если k не простое, разумеется...
>>151387 а вот же он: >>151386>0101 0010 0001 0101 0011 1010 1110 011031|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|0|1|0|1|0|0|1|0|0|0|0|1|0|1|0|1|0|0|1|1|1|0|1|0|1|1|1|0|0|1|1|0|1|1|0|0|1|1|0|0|1|0|1|0|0|1|0|0|0|0|1|0|1|0|1|0|0|1|1|1|0|1|0|1|0|1|0|0|1|1|1|0|1|0|1|1|1|0|0|1|1|0|0|1|0|1|0|0|1|0|0|0|0|1|0|1|0|0|0|0|1|0|1|0|0|1|0|0|0|0|1|0|1|0|1|0|0|1|1|1|0|1|0|1|1|1|0|0|1|0|0|0|1|0|0|0|0|1|0|1|1|1|1|1|0|0|0|1|1|0|0|1|1|0|1|0|1|1|0|0|
>>151401Поехавший
>>151402C чего бы это?
>>151386> Для "некрасивого" набора бит вида0101 0010 0001 0101 0011 1010 1110 0110 не проследишь Это число является одним из прообразов:11110101011110111000000010101100
>>151404
>>151405>>151404Выведи 11110101011110111000000010101100 пожалуйста в виде таблицы >>151401>>151405Что за язык
>>151405Нет, у меня не получается1111 0101 0111 1011 1000 0000 1010 11001110 0000 0010 1011 0011 1101 0101 11101001 1110 1010 1111 0111 0000 0001 01010010 0111 0110 1110 1011 1010 0100 10100010 0111 0110 1110 1011 1010 0100 1010 не равно 1111 0101 0111 1011 1000 0000 1010 1100
>>151407Поторопился1111 0101 0111 1011 1000 0000 1010 11000101 1001 1110 1010 1111 0111 0000 0001 1110 0000 0010 1011 0011 1101 0101 11100001 1110 1010 1111 0111 0000 0001 01011010 0111 0110 1110 1011 1010 0100 10101010 0111 0110 1110 1011 1010 0100 1010 не равно 1111 0101 0111 1011 1000 0000 1010 1100
>>151374Давай, исходя из пикчи >>151374 и пофиксенноно нулём >>151391рассмотрим бит N результата Y при значении 1.Обратная функция двойного xor даёт 4 варианта значений, для N-го бита:x1[N], x2[N], x3[N].Эти значения - [1, 0, 0]; [0, 0, 1]; [0, 1, 0]; [1, 1, 1], соответственно.Так вот, твоя задача - отобрать из всех таких вариантов те, и только те,в которых значения удовлетворяют следующим условиям:x1[N] = x2[(N-11) mod 32] = x3[(N+4) mod 32],x2[N] = x1[(N+11) mod 32] = x3[(N-17) mod 32],x3[N] = x1[(N-4) mod 32] = x2[(N+17) mod 32],И так, по всем N.Все результаты, не вписывающиеся в эти условия - удаляй с помощью unset,и ты получишь непрерывную последовательностьсцепленных, таким образом троек бит.
>>151404>0101 0010 0001 0101 0011 1010 1110 0110>11110101011110111000000010101100Не оно.>>151406Этот >>151405 - не я.>Что за языку меня - php;>Выведи 11110101011110111000000010101100 пожалуйста в виде таблицыНа.31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|1|1|1|1|0|1|0|1|0|1|1|1|1|0|1|1|1|0|0|0|0|0|0|0|1|0|1|0|1|1|0|0| input0|1|0|1|1|0|0|1|1|1|1|0|1|0|1|0|1|1|1|1|0|1|1|1|0|0|0|0|0|0|0|1| rotr71|1|1|0|0|0|0|0|0|0|1|0|1|0|1|1|0|0|1|1|1|1|0|1|0|1|0|1|1|1|1|0| rotr170|0|0|1|1|1|1|0|1|0|1|0|1|1|1|1|0|1|1|1|0|0|0|0|0|0|0|1|0|1|0|1| shr31|0|1|0|0|1|1|1|0|1|1|0|1|1|1|0|1|0|1|1|1|0|1|0|0|1|0|0|1|0|1|0| output>>151407А это - правильно?Ой, ты ж не поксорил.>>151408>1010 0111 0110 1110 1011 1010 0100 1010Да.>не равно 1111 0101 0111 1011 1000 0000 1010 1100Это же вход.P.S.: Кто нибудь сможет поделить точку на число на эллиптической кривой?
>>151409Там, в x3, ещё нули прописать надобно же.
>>151410>>151405>>151404То есть, получается, работает. Как только я разберусь, я тебя похвалю
>>15141211110101011110111000000010101100 = x01011001111010101111011100000001 = x rotr 711100000001010110011110101011110 = x rotr 1800011110101011110111000000010101 = x shr 301010010000101010011101011100110 = xor этих четырехОно. >>151404
>>151405Это матпакет wolfram mathematica. Заебался писать это и отлаживать.
>>151414А ты не можешь вкратции описать идею?
>>151413>rotr 18Почему 18?>xor этих четырехПочему 4-х?Ты что, тройной ксор врубил?А ну, давай проверю:11110101011110111000000010101100 xor01011001111010101111011100000001 =10101100100100010111011110101101 xor11100000001010110011110101011110 =01001100101110100100101011110011 xor10101100100100010111011110101101 = 01010010000101010011101011100110. Да.
>>151415Без проблем.>>151364
>>151417Метод Гаусса?
>>151364Нифига не соответствует намаляканным пикчам.
>>151419Каким пикчам? Конкретнее
>>151418LinearSolve, фиг его знает, чем он там решает. Все остальное - просто всякие переводы в нужные форматы, создание матрицы коэффициентов и проверка.
>>151420>a1 = w1 ^ w8 ^ w17 ^ w4Вот это, отсюда: >>151364не соответствует вот этому:>s0 := (w[i-15] rotr 7) xor (w[i-15] rotr 18) xor (w[i-15] shr 3)отсюда: >>151346этому>#define S0(x) (ROTR(x, 7) ^ ROTR(x,18) ^ SHR(x, 3))#define S1(x) (ROTR(x,17) ^ ROTR(x,19) ^ SHR(x,10))отсюда: >>151317и пикчам >>151323>>151332>>151374эллиптический ОП-кун, с таблицами из палочек.
>>151421Спасибо, ты гений >>151423>a1 = w1 ^ w8 ^ w17 ^ w4То видимо опечатка, естественно без w4>#define S0(x) (ROTR(x, 7) ^ ROTR(x,18) ^ SHR(x, 3))>s0 := (w[i-15] rotr 7) xor (w[i-15] rotr 18) xor (w[i-15] shr 3)Одно и тожеПикчи формируют образ
>>151424Вернее a1 = w8 ^ w19 ^ w4
>>151425Хотя да, тут криво как-то>После xor пусть получается число a32a31a30...a2a1гдеa32 = w32 ^ w7 ^ w18a31 = w31 ^ w6 ^ w17...a1 = w1 ^ w8 ^ w17 ^ w4
Ну суть ясна
>>151424>То видимо опечатка, естественно без w4>Пикчи формируют образВ коде и пикчах - 3 значения и два xor'a,а тут >>151413>>151416и тут:>>a1 = w1 ^ w8 ^ w17 ^ w44 значения и 3 xor'a[soiler], и сходится.[/spoiler]
>>151428Ахаха крыша поехала11110101011110111000000010101100 = x--------------------------------------------------------01011001111010101111011100000001 = x rotr 711100000001010110011110101011110 = x rotr 1800011110101011110111000000010101 = x shr 3--------------------------------------------------------01010010000101010011101011100110 = xor этих четырех--------------------------------------------------------10100111011011101011101001011010 = (x rotr 7) ^ (x rotr 18) ^ (x shr 3)--------------------------------------------------------Действительно, нам-то нужен xor трех
>>151429НЕТВсе совпадает, я ошибся в 5 бите там 0
>>151429А, ну извините. Это я проебался, поксорив четыре. Но общей сути не меняет.
11110101011110111000000010101100 = x01011001111010101111011100000001 = x rotr 711100000001010110011110101011110 = x rotr 1800011110101011110111000000010101 = x shr 301010010000101010011101011100110 = xor этих четырех10100111011011101011101001011010 = (x rotr 7) ^ (x rotr 18) ^ (x shr 3)>некрасивое число 0101 0010 0001 0101 0011 1010 1110 0110И что это, почему тройной ксор дает то что должен давать двойной ксор, ааааа
>>151428>сходитсяСходится в том плане, что:x = 11110101011110111000000010101100;y = ROTR(x, 7) ^ ROTR(x,18) ^ SHR(x, 3) =10100111011011101011101001001010;а y ^ ROTR(y, 7) ^ ROTR(y,18) ^ SHR(y, 3) =11110101011110111000000010101100;Но это - совпадение и наёбка, а не обратная функция.Потому, что:11010001100010111101000010110010 input01100101101000110001011110100001 rotr811110100001011001011010001100010 rotr1800011010001100010111101000010110 shr310001011101111101101100111010101 output10101011000101110111110110110011 output_rotr810110110011101010110001011101111 output_rotr1800010001011101111101101100111010 output_shr3output ^ output_rotr8 ^ output_rotr18 ^ output_shr3= 10000111101010110001110110110011≠ 11010001100010111101000010110010Тред, с криптовалют - плавно перетёк в ECC (что ещё куда не шло),и в rotrы ебучие.
11101100111101110111100101001000 прообраз для 01010010000101010011101011100110 для функции (x rotr 7) ^ (x rotr 18) ^ (x shr 3)
>>15143411101100111101110111100101001000 = x10010001110110011110111011110010 = x rotr 711011110010100100011101100111101 = x rotr 1800011101100111101110111100101001 = x shr 301010010000101010011101011100110 = xor этих трех
>>151434А он один или их несколько?
>>151436Скорее всего, несколько.
>>151429Хули ты пиздишь?
>>151438x ^ (x rotr 7) ^ (x rotr 18) ^ (x shr 3) дает такой же результат какой должен давать (x rotr 7) ^ (x rotr 18) ^ (x shr 3)
Ладно, ВСЕ, анон с вольфрамом гений
>>151440http://freetexthost.com/eanerf40x6
>>151432>И что это, почему тройной ксор дает то что должен давать двойной ксор, ааааа>>151439>x ^ (x rotr 7) ^ (x rotr 18) ^ (x shr 3) дает такой>же результат какой должен давать>(x rotr 7) ^ (x rotr 18) ^ (x shr 3)А там же xor на результат предыдущего xor'a, вот и совпадение получилось.Задолбали со своими ксорами. Обратить-то получилось?И ваще, ITT, EC, ECC (ECDSA, ECIES и ECDH) и точка G обсасывается, а не эти всякие, брутфорсы хешей.ОП
>>151442Непонятно как устроен вольфрамовый молот
>>151443http://peshera.org/khrono/Fotos-03/foto-281.jpg
dim = 32; //константаROR[x_, k_] := FromDigits[RotateRight[IntegerDigits[x, 2, dim], k], 2]; //функция сдвигаy = FromDigits["01010010000101010011101011100110", 2];Em = IdentityMatrix[dim];//создаем квадратную матрицу 32х32mtx = RotateRight[Em, 7] + RotateRight[Em, 18] +Transpose[RotateLeft[ReplacePart[Em, {{1}, {2}, {3}} -> ConstantArray[0, dim]], 3]]; //непонятно как можно сдвинуть матрицу. ReplacePart[Em, {{1}, {2}, {3}} -> ConstantArray[0, dim]] - заменить 1, 2, 3 столбец нулями и потом сдвинуть влево?Непонятно что делает transpose. Затем сложение ? mtx = Mod[mtx, 2]; //представляем все числа внутри по модулю 2BaseForm[y, 2] //выводим y в двоичной формеans = FromDigits[LinearSolve[mtx, IntegerDigits[y, 2, dim], Modulus -> 2], 2];//finds an x that solves the matrix equation m.x==b. BaseForm[ans, 2] //выводим ответBaseForm[BitXor[ROR[ans, 7], ROR[ans, 18], BitShiftRight[ans, 3]], 2] //проверка
>>151445Хотя понятно как сдвинуть, непонятно что внутри матрицы, после IdentityMatrix там единичная
>>151445Так, вроде сдвиг ясен, после сложения в матрице появляются единички на тех местах, где нужно.Что делает IntegerDigits[y, 2, dim]?
>>151447>Что делает IntegerDigits[y, 2, dim]?Дополняет нулями до 32 бит слева, чтобы дать 32-битное значение.IntegerDigits[n,b,len]pads the list on the left with zeros to give a list of length len.
>>151448ponyal
>>151449>Непонятно что делает transpose.https://reference.wolfram.com/language/ref/Transpose.htmlМеняет уровни списка, короче.>Затем сложение ?>mtxсложение к матрицечто-то вроде push;А затем, mtx = Mod[mtx, 2]ROR это ксор?
>>151451ROR - функция циклического сдвига>ROR[x_, k_] := FromDigits[RotateRight[IntegerDigits[x, 2, dim], k], 2];IntegerDigits[x, 2, dim] - дополняет слева нулями до 32 бит, RotateRight[IntegerDigits[x, 2, dim], k] - циклически сдвигает вправо на k позиций, FromDigits[RotateRight[IntegerDigits[x, 2, dim], k], 2] - возвращает получившееся число в двоичном виде
>>151451ROR это rotr. Xor это BitXor[].mtx после всего получается как на пике. Это просто матрица с 0 и 1, которая делается из двух сдвинутых единичных (зеленая и красная диагонали из 1) и еще одной сдвинутой, от которой отрезано 3 строки (ну, отрезаются столбцы, а потом транспонируется, так что все равно что строки).Это все коэффициенты в системе уравнений, которая потом решается LinearSolve. Например, в 1й строке 1 стоят на 7 и 18 месте С КОНЦА (потому что первым битом принято считать самый правый, то есть нумерацию столбцов лучше делать справа налево). Это отвечает уравнению x7 ^ x18 = a32.
>>151385>Разве нельзя kG разелить на k/2 и получить 2GМожно. Тебе повторить, какая сложность у этой операции деления?
>>151453Можешь расписать всё это алгоритмом, в виде1.2.3.?????4. PROFIT!или ссылку на онлайн вольфрам математика или exe под винду чтоб код вставить, не?
>>151455https://rutracker.org/forum/viewtopic.php?t=4854855Тоже думаю поставить, но сейчас времени нет
>>151455> Можешь расписать всё это алгоритмом, в видеОтносительно x решается СЛАУ вида Mx=y, где y - образ (входное число), x - прообраз, а M - матрица с пика.
>>151454>какая сложность...kG/(k/2) = kG × ((k/2)^-1 mod P) = 2G, не?Деление точки на числовую константу с точкой в результате, а не деление точки на точку, для получения числовой константы.
>>151458А, ты там kG на k делить хочешь. Лол, это я тебе и без вычислений скажу: kG/k = G.Только какой смысл в этом вычислении, если k тебе не известен, а известен только kG и G?
>>151459Чтобы показать тебе, что операция деления жи есть.Алсо, 150kG /k = 150G,по идее должно быть.
>>151459>это я тебе и без вычислений скажу: kG/k = G.А если замутить что-то вроде:kG / ((x(kG)^3 + ax + b) mod P / (y(kG)^2) mod P)даст ли это что-то интересное?
>>151461> ((x(kG)^3 + ax + b) mod P / (y(kG)^2) mod P)Ой, тут походу единица будет.А если y(G), взять или обратную ей?
>>151462> взять или обратную ей?Не знаю, я вот беру пизду твоей мамаши шлюхи обычно.
>>151463>обычно>твоей
>>151463>>151464>Не>,>обычно>твоейПофиксил.
>>151460Впрочем, тут уже я затупил: действительно, операция деления точки на число есть, но толку из этого никакого.>x(kG)^3 + ax + bТут ты вообще точку в степень пытаешься возвести, а потом сложить с числом. Лолшто?>y(G)Кого-кого?
>>151457>Mx=yМ(32 столбца, 32 строки),x(1 столбец, 32 строки),y(1 столбец, 32 строки).Там же, при умножении элементов строки на столбец, сложение идёт.Взять строку 4, например, в ней - три единичных бита.При совпадении единичных бит в столбце с единичными битами в 4-й строке матрицы:1x1 + 1x1 + 1x1 уже = 3, а может быть в результате - 1 или 0.Т. е. результат 3 представляется в бинарном виде как 11, записывается результат 1и одна единица идёт вниз, прибавляясь к следующему результату, я правильно понимаю?Также, интересна функция LinearSolve из wolfram mathematica (он же весит 6,5 гигов).Eсть ли у неё аналоги на других языках программирования?
>>151478>x(kG)^3имелась в виду координата x от точки kG;kG(xkG, ykG);xkG^3 mod P;Короче, если с координатами поиграться, может получатся какие-то интересные точки.Хотя... Забей...
>>151483> Взять строку 4, например, в ней - три единичных бита.1x32 + 1x15 + 1x4 = 4-му элементу y (mod 2)Ничего вниз никуда не идет.
>>15148532+15+4 = 51 mod 2 = 1, так?Откуда тогда цифры 32, 15, 4?>LinearSolveЯ как понял, при M⋅x=y; x = (M-1)⋅y,где M-1 - матрица, обратная матрице М.
>>151453А как найти матрицу, обратную матрице на пикче?
>>151534Используя любой метод для обращения матриц. Только нужно не забывать делать все по модулю 2.Да, вот такой код тоже сработает:inv = Mod[Inverse[mtx]⋅Det[mtx], 2]Mod[inv.IntegerDigits[y, 2, dim], 2]Первый mod можно делать, можно не делать. Делать выгодно, чтобы inv содержал только 1 и 0. Вот эта матрица: http://freetexthost.com/ide12yhn11
>>151536Если совсем упростить, то вот это обращает твой хэш http://textuploader.com/d5lrf
>>151536>Вот эта матрицаКак искал? Методом Гаусса-Иордана?>>151537http://matrix.reshish.ru/inverse.phpЗдесь, при попытке найти обратную матрицу вообще выдало вообще 5-ти значные отрицательные числа.>это обращает твой хэшНе хеш, а лишь один милипиздрический элемент его. Обратить хеш невозможно в принципе же , не?
>>151539> Не хеш, а лишь один милипиздрический элемент его. Обратить хеш невозможно в принципе же , не?Да.Искал методом> Inverse[mtx]только там и есть отрицательные дробные значения. Нужно привести их к целым и взять по модулю 2.> inv = Mod[Inverse[mtx]⋅Det[mtx], 2]
>>151539> Здесь,Ты что, вбил туда 32*32 значения?
>>151543>Ты что, вбил туда 32*32 значения?Нет, только единички.А остальные ячейки нулями заполнил.Там же кнопка есть. =)
>>151541>Нужно привести их к целым и взять по модулю 2.При умножении матрицы на столбец,нужно брать модуль от 2 каждого слагаемого или всей суммы?31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|0|1|0|1|0|0|1|0|0|0|0|1|0|1|0|1|0|0|1|1|1|0|1|0|1|1|1|0|0|1|1|0| input1|1|0|0|1|1|0|0|1|0|1|0|0|1|0|0|0|0|1|0|1|0|1|0|0|1|1|1|0|1|0|1| rotr70|1|0|0|1|1|1|0|1|0|1|1|1|0|0|1|1|0|0|1|0|1|0|0|1|0|0|0|0|1|0|1| rotr180|0|0|0|1|0|1|0|0|1|0|0|0|0|1|0|1|0|1|0|0|1|1|1|0|1|0|1|1|1|0|0| shr31|0|0|0|1|0|0|0|0|1|0|1|1|1|1|1|0|0|0|1|1|0|0|1|1|0|1|0|1|1|0|0| outputв свою очередь:M-1 ⋅ 10001000010111110001100110101100 =10010100100001010111111011100110 ≠01010010000101010011101011100110,хотя 10 последних бит совпадают.M-1 брал отсюда: >>151537Каждый бит - считал так:(0⋅0 + 1⋅1 + 2⋅2 + 3⋅3 + ... + 31⋅31) mod 2,(32⋅0 + 33⋅1 + 34⋅2 + ... + 63⋅31) mod 2,и т. д.При этом, первый множитель в мономах - j-тый индекс столбца конкретной i-той строки матрицы, второй множитель - номер бита входного числа.
Что вообще эти ебанаты несут?
>>151555Зарепортил неврастеника.
>>151555Здесь кружок занимательной математики.Один начинающий ебанушка пытается что-то понять, полторы продвинутых ебанушки пытаются ему что-то объяснить, один ебанушка скрывает свой уровень и наблюдает.
>>151555Почему матом ругаешься?
>>150966 (OP)Как не качать все блоки блокчейна в тяжеловесном Qt-клиенте, а только блоки с определённого заданного?У dogecoin их овер миллион - шизануться можно же. Тут и bootstrap.dat не радует.
>>151107Тут получаются даже не зеттабайты, а YOBIбиты YOBAбайтов.
>>150966 (OP)Как с блокчейна получить актуальный блок для брутфорса соли (майнинг)?Откуда вообще берутся новые блоки, как они формируются, и где собираются транзакции в блоки?Можно ли вообще как-то майнить в режиме соло через блокчейн без установки каких-либо программ и участия в пулах?
>>151609>для брутфорса соли (майнинг)>майнить в режиме соло через блокчейн без установки каких-либо программПиздос.
>>151613А если у меня петафлопсы?
>>151618Твои вопросы легко гуглятся.>Как с блокчейна получить актуальный блок для брутфорса соли (майнинг)?Скачать из сети, не?>Откуда вообще берутся новые блокиСоздаются майнерами, не?>как они формируются, В Гугл. >и где собираются транзакции в блоки?Где, блядь, собираются? В блокчейне собираются.>Можно ли вообще как-то майнить в режиме соло через блокчейнМожно>и участия в пулах? это так и называется - соло-майнинг>без установки каких-либо программДа, можешь считать хэш в уме, а последний блок качать через браузер.
>>151621>Скачать из сети, не?Не. Не current block, а блок без nonce, к которому её надо подобрать.>Создаются майнерами, не?Где?>как они формируютсяКуда конкретно?>В блокчейне собираются.После того, как nonce подобрана, и блок готов, да. А до того?>Можно>майнить в режиме соло через блокчейнblockchain.info - тут только пулы.>это так и называется - соло-майнингОк.Я так понимаю, нужно скачать bitcoin-Qt,слить все блоки (а их там много), врубить его в режим сервера, и на сервер включить майнер с параметрами:-o http://localhost:8332 -u RPCUSER -p RPCPASSПотому что последний актуальный блок, ещё не сгенерённый и свежие транзакции, прилетают в виде tcp-пакетов прямо в прогу из одноранговой p2p.И чтобы это было, надо загрузить ВСЕ БЛОКИ, ВСЕ 45 ГИГОВ, нафиг_не_нужных_блоков.И как же подключиться к blockchain.info для этого?>можешь считать хэш в уме, а последний блок качать через браузер.Зачем мне последний блок, если за его генерацию уже выплачены битки предыдущему майнеру?Мне надо новый блок сгенерить, я же майнер, ёпт.И к чему ты Турчина поцепил, он что тоже майнит биток через блокчейн?
>>151618Да хоть зетафлопсы, неграмотности это не оправдывает.>как же подключиться к blockchain.info для этого?Перестань называть этот сайт блокчейном. Блокчейн это база данных биткоина.blockchain.info это отдельный сайт, просто показывающий тебе красивый интерфейс для просмотра этой базы.
>>151625Есть ещёhttps://blockexplorer.com/и https://webbtc.com/и antpool с его 295.29 PetaHashes/secАлсо, вижу 436042-й блокhttps://blockchain.info/block/0000000000000000028603f405c303c1711f22ffa1c31ffee89397b90099cb42С его Nonce 1106733466, которую можно было бы перебрать в соло за 6.14851926 секунд на моей видеокарте, у которой 180Мh/sТак вот, блок 436042 уже сгенерён и вошёл в блокчейн.А блок 436043 ещё нет. Как только соль к нему найдут майнеры - он будобавлен, как и другие последующие.Этот блок, после генерации будет разослан по p2p-сети всем клиентам у которых bitcoin-Qt, и не только, верно?Так вот, как и откуда его получить, чтобы начать искать nonce?
>>151629>будобавленБудет добавлен.самоfix
>>151625Короче, blockchain.info- это парсер.А block chain дословно блок цепь - цепочка блоков.База в виде bootstrap.dat или blk*.dat.Так легче в башке укладывается всё это.
>>151629Создай сам, тупица.
>>151641Ты имеешь в виду блок с одной транзакцией получения сгенерированных биткоинов?Вот так вот, что-ли?https://blockchain.info/block/000000000000000002eb076392586c5b034ba3826ff6adb459bc57db4191943eТранзакции откуда берутся для следующего блока?
>>151648Да, так.Из сети.
>>151206>α = (Gy-Gy)/(Gx-Gx) = 0/0 (неопределённость).Там не нули.Удвоение - это отдельная операция.α = 3x^2/2y;Интересно, есть ли операция, обратная удвоению?
>>151993http://point-at-infinity.org/ecc/Prime_Curve_Standard_Projective_Coordinates.html