Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 224 | 23 | 35
Назад Вниз Каталог Обновить

Криптовалют тред. Аноним 02/10/16 Вск 18:03:44  150966  
(151Кб, 800x474)
Есть walletgenerator.net, работающий локально.
И есть возможность выбрать валюту
для генерации адреса, после сбора энтропии.
И много там валют.
И возвращаются в результате, как правило два значения, приватный ключ и адрес кошелька.
И есть блокчейны для этих валют, и возможность просмотреть баланс по адресу.

Вопрос: возможно ли сформировать транзакции локально, и отправить их в соответствующую сеть с помощью приватного ключа?

Кто сколько знает криптовалют которые можно юзать без клиентов, онлайн через их блокчейны?
Аноним 03/10/16 Пнд 03:29:32  150983
(1103Кб, 750x1334)
>>150966 (OP)
Блокчейн это бд с данными. Она не умеет в создание транзакций, для этого процесс кошеля нужен, через который все операции и проводятся.

А так, оффлайново сгенерировать транзакцию, зная приватный ключ можно для практически любой монеты. И заслать ее потом через процесс кошелька.
Аноним 03/10/16 Пнд 08:29:27  150985
(56Кб, 1349x943)
>>150983
Но блокчейн же вгружает блоки с децентрализованной сети, а значит - имеет с ней связь. Более того, на blockchain.info, при указании приватного ключа, кошелёк добавляется и можно совершать транзакции внутри блокчейна. Значит, блокчейн ещё и может отправлять данные в сеть на обработку, а не только просматривать.
Ясное дело, что и одиночный клиент может создавать транзакции и подписывая их своим приватным ключём - отправлять их в сеть напрямую, но нужна программа.
Мне же интересно приёмо-передача крипты исключительно онлайн, без этих всяких клиентов в десятки мегабайт, и их цепочек блоков в десятки гигабайт...

Вот был, когда-то brainwallet.org, но сейчас почему-то не работает.
Так вот, там было что-то наподобие пикрелейтед.
Аноним 03/10/16 Пнд 16:48:08  150993
>>150985
>блокчейн же вгружает блоки
Для особо тугих: блокчейн это бд с данными. Она ничего не умеет, она просто лежит на дисках.
Сайт блокчейн.инфо всё перечисленное умеет, но это сайт, работающий с блокчейном, а не сам блокчейн.
Аноним 05/10/16 Срд 00:06:24  151016
Коинососы, есть на примете годные краны? Ну что бы много платили и выплата была небольшой, с меня нихуя.
Аноним 05/10/16 Срд 00:14:01  151018
>>151016
Майни, ебанько.
Аноним 05/10/16 Срд 00:27:37  151020
>>151016
Ось мои любимые + краны с epay:
goo.gl/4Pocgp снизу слева
И вот 3 брата сатоши-выхрёбывателя, выплата после 6к, за раз 125 сатоши минимум
goo.gl/9VqF3j
goo.gl/WG05Zx
goo.gl/6NTMLC
Аноним 05/10/16 Срд 10:48:54  151026
>>151020
А они не хотят адблок. Больше уйдёт за трафик при загрузке рекламы, чем эти сатоши...
Аноним 05/10/16 Срд 20:01:18  151033
>>150985
Ты вообще не понимаешь смысл слов, которые произносишь. Вообще, пиздец, поток бреда! Вали обратно в свою чечню!
Аноним 05/10/16 Срд 20:52:39  151035
>>151026
>2016
>ограниченный трафик
Аноним 05/10/16 Срд 20:59:57  151036
(449Кб, 286x119)
(35Кб, 912x366)
Локалбиткоинс ВСЁ?
Аноним 05/10/16 Срд 21:35:04  151037
>>151020
Пасебо
Аноним 06/10/16 Чтв 00:16:39  151054
>>151033
Во-первых, не произношу, а печатаю.
Во-вторых, понимаю.
В-третьих, ты что, читать не умеешь?
В-четвертых, смотри сам туда не свали.
В-пятых, блокчейн - дословно, цепочка блоков.
Блоки на диске. Речь идёт же идёт о blockchain.info и ему подобным сайтам для онлайн переводов имея лишь приватный ключ.
Аноним 06/10/16 Чтв 00:18:16  151055
>>151036
Нет, не всё. На walletgenerator.net, помимо биткоина - есть ещё куча разных валют.
Интересует сама технология создания и подписи транзакций приватным ключем с возможностью отправить транзакцию в сеть.
Аноним 06/10/16 Чтв 00:23:01  151056
>>151035
А если я капчую морзянкой по радиоканалу через телефонный модем в 56кбит/сек, с батискафа в Тихом океане?
Аноним 06/10/16 Чтв 09:14:31  151058
>>151055
Так гугли формат транзакций и создание raw транзакций через консоль, хотя бы для биткоина. Берешь, создаешь и отправляешь любому узлу сети, дальше она рассылается сама и включается в блок.
Аноним 06/10/16 Чтв 19:10:40  151097
>>151056
Я вас помню, кстати...
Аноним 06/10/16 Чтв 19:11:32  151098
>>151058
Ну так для консоли надо прогу ставить, а интересно онлайн, типа пикчи >>150985
Аноним 07/10/16 Птн 01:42:23  151107
>>150966 (OP)
Смотрите прикол.
http://directory.io/904625697166532776746648320380374280100293470930272690489102837043110636674

Как им удалось на одном сайте разместить
904625697166532776746648320380374280100293470930272690489102837043110636675 страниц?

Можете посчитать сами, сколько это в байтах...
Аноним 07/10/16 Птн 08:15:34  151108
>>151107
Никак, страницы генерируются на лету.
Аноним 08/10/16 Суб 16:29:21  151124
>>151107
Т. е. 904625697166532776746648320380374280100293470930272690489102837043110636674 всего лишь берется в качестве префикса для генерации приватных ключей?
Вижу в адрес ссылки каждого ключа входит
http://directory.io/warning:understand-how-this-works!/5Km2kuu7vtFDPpxywn4u3NLpbr5jKpTB3jsuDU2KYEqeXFitbFU
Аноним 09/10/16 Вск 01:02:13  151134
>>151107
Ёбнутый, блядь.
Аноним 10/10/16 Пнд 06:29:11  151148
чё за говно с рипплом?
Аноним 11/10/16 Втр 19:55:37  151178
(48Кб, 602x787)
>>150985
Вот, нашёл.
http://wallet-2sx53n.sakurity.com/#converter
В правом нижнем углу - можно скачать в зипе JS.
Работает локально.

>>150966 (OP)
Вот есть, значит, ECDSA.
И есть пара ключей, приватный ключ и закрытый ключ.
И формат приватного ключа Base58Check.
И есть биткоин-адрес, полученный из открытого ключа по пикрелейтед схеме.
И не светится открытый ключ в адресе, а Ripemd160 его sha256-хеша.

Есть возможность подписать сообщение приватным ключем, и проверить подпись.

Вопрос. Можно ли использовать открытый и закрытый ключи для шифрования сообщений приватным ключем и расшифровки их публичным с помощью ECDSA?
И если да, то как?
Аноним 11/10/16 Втр 20:08:16  151179
>>151178
>можно скачать в зипе JS. Работает локально.
Не-а. Closed Permanently

Вот, ещё тот старичёк brainwallet, на рыгхосте:
http://rgho.st/6LCyRbn5L
Аноним 12/10/16 Срд 10:03:02  151185
>>151178
>приватный ключ и закрытый ключ.
Это одно и то же. Более того, в ECDSA публичный ключ можно выдернуть из приватного.
>Можно ли использовать ... для шифрования сообщений
Нельзя, DSA алгоритмы могут только подписывать\валидировать подпись. Это не RSA.
>>150985
Обладая приватным ключем можно на любом ПК создать транзакцию и подписать её. Потом в виде json перенести транзакцию на онлайн тачку и транслировать в биткоин-сеть. Такой подход позволяет хранить ключи на машинах, вообще не подключенных к инету.
Аноним 12/10/16 Срд 21:05:19  151190
>>151185
>Это одно и то же. Более того, в ECDSA публичный ключ можно выдернуть из приватного.

Ну, давай, раз такое дело, зайдём на http://wallet-2sx53n.sakurity.com/#generator
и вобьём туда любой приватный ключ, например 5JBeeb8eAurr2w2LGVGp5Kh4Gph3RLDtYshUUcRmMLE4GmZNDNv,
и посмотрим соответствующий ему публичный ключ 0468ee4a73cc3dfb44f80fd33c22e97c1a458729dad2b924910d5b6c927afd36a3947d8033f36ef687b9c3456d2419739a5a4afcbb68f555d1fd7685ef84c650bb.

Теперь, проследуем в http://wallet-2sx53n.sakurity.com/#converter, и сконвертируем приватный ключ
с base64Check -> в hex, получая вот это 30820113020101042041020101a14403420004a34b99f22c790c4e36b2b3c2c3.
Итак, получилось 32 байта. А длина публичного ключа - 65 bytes.

А теперь, скажи, как из приватного ключа можно выдернуть публичный.
Алсо, на пике >>151178 ты можешь увидеть аж два 32-байтных числа, входящих в публичный ключ.
Такой вопрос напрашивается ещё...
Действительно ли публичный ключ единственный для конкретного приватного ключа.
Аноним 13/10/16 Чтв 08:27:04  151193
>>151190
Ты такие вещи читать можешь?
https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses
Наверняка у тебя в публичном только точка x, вместо (0x04,x,y). y вычисляется по x при заданной кривой.
Ключ единственен, адресов биткоин два.
Аноним 13/10/16 Чтв 08:48:05  151194
>>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 точки.
Аноним 13/10/16 Чтв 09:27:21  151196
>>151193
>Наверняка у тебя в публичном только точка x, вместо (0x04,x,y).
Я же его оставил, выше.
Аноним 13/10/16 Чтв 09:35:54  151198
(87Кб, 385x257)
>>150966 (OP)
>Кто сколько знает криптовалют
Просто оставлю это здесь:

42coin
Acoin
Alphacoin
Animecoin
Anoncoin
Apexcoin
Auroracoin
BBQcoin
Bitcoin
BitcoinDark
Birdcoin
Blackcoin
BlackJack
BunnyCoin
CanadaeCoin
CannabisCoin
Capricoin
CassubianDetk
CashCoin
Catcoin
Corgicoin
CryptoBullion
CryptoClub
Cryptoescudo
Dash
DeafDollars
Devcoin
Digitalcoin
Dogecoin
DogecoinDark
eGulden
eKrona
Emercoin
EnergyCoin
Fastcoin
Feathercoin
Fibre
Fluttercoin
Freicoin
FUDcoin
Fuelcoin
Fujicoin
GabenCoin
GlobalBoost
Goodcoin
GridcoinResearch
Gulden
Guncoin
HamRadioCoin
HTML5Coin
HyperStake
ImperiumCoin
IncognitoCoin
Influxcoin
IridiumCoin
iCash
iXcoin
Judgecoin
Jumbucks
Latium
Litecoin
LiteDoge
MagicInternetMoney
Magicoin
Marscoin
MarteXcoin
MasterDoge
Mazacoin
Megacoin
MobiusCoin
MonetaryUnit
Monocle
MoonCoin
Myriadcoin
NameCoin
Neoscoin
Novacoin
Nubits
Ocupy
Omnicoin
Onyxcoin
Paycoin
Pandacoin
ParkByte
Pesetacoin
PHCoin
PhoenixCoin
Peercoin
Potcoin
Primecoin
Quark
Reddcoin
Riecoin
Rimbit
Rubycoin
Sambacoin
SecKCoin
SibCoin
SongCoin
SpreadCoin
StealthCoin
Syscoin
Titcoin
TittieCoin
Topcoin
TransferCoin
TreasureHuntCoin
Unobtanium
USDe
Vertcoin
Viacoin
VikingCoin
W2Coin
WankCoin
WeAreSatoshiCoin
WorldCoin
Zetacoin
Аноним 13/10/16 Чтв 09:38:24  151199
(60Кб, 3840x2160)
>>151198
И Ethereum ещё.
Аноним 13/10/16 Чтв 10:03:34  151200
>>151185
>приватный ключ и закрытый ключ.
Имел в виду открытый. Паблик кей.
>Это одно и то же.
ok.
>>Обладая приватным ключем можно на любом ПК создать транзакцию и подписать её. Потом в виде json перенести транзакцию на онлайн тачку и транслировать в биткоин-сеть. Такой подход позволяет хранить ключи на машинах, вообще не подключенных к инету.
Ok.
>Более того, в ECDSA публичный ключ можно выдернуть из приватного.
ok. Через G.
>DSA алгоритмы могут только подписывать\валидировать подпись. Это не RSA.
Ok.
Однако ECIES (или ECDH) жи есть.
Могут ли эти фичи работать с ключами формата ECDSA?
priv - 32 byte, и pub(x, y) - по 256 bit.
Ну, чтоб в крайнем случае - просто выдернуть эти числа из ключей.
Аноним 13/10/16 Чтв 11:11:22  151204
>>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 =
32748224938747404814623910738487752935528512903530129802856995983256684603122

y = 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 p
Y=Gy
priv mod p
I understand '*' is this http://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication operation.
Взято отсюда, https://bitcointalk.org/index.php?topic=456737.0
но там непонятно нифига.
Аноним 13/10/16 Чтв 11:28:13  151205
(19Кб, 460x360)
>>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 this
25 = 11001 (in binary)
25 = 16 + 8 + 1
25
G = 16 G + 8 G + 1 * G
You can work out 16G, 8G and G by just doubling G over and over. You then add them together.
16G + 8G + G = 25G
Только вот, как это сделать, если имеется две координаты?..
Аноним 13/10/16 Чтв 11:43:13  151206
(2Кб, 268x35)
(3Кб, 235x69)
(2Кб, 427x44)
(4Кб, 488x41)
>>151205
Запишем сложение двух точек в виде формулы: пик1.
Пусть координатами точки P будут (xp, yp), а координатами точки Q соответственно (xq, yq).
Вычислим пик2.
И тогда координаты точки P+Q будут равны: R(пик3, пик4).
Взято с хабра https://habrahabr.ru/post/188958/

Ну ок...
xp = xq = Gx
yp = yq = Gy
α = (Gy-Gy)/(Gx-Gx) = 0/0 (неопределённость).
Пускай будет ноль.

2G = G+G;
2G(-2Gx, -Gy)
Всё верно?


Аноним 14/10/16 Птн 01:32:24  151240
>>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-ом. Правильно?
Аноним 14/10/16 Птн 09:18:49  151249
>>151190>>151193
Охуеть, что случилось с моим /cc/? Двое людей знают матчасть, и ни один из них не я, то есть всего как минимум трое.
Исход трейдеропетушков явно пошёл на пользу.
Аноним 14/10/16 Птн 09:29:49  151251
(47Кб, 640x430)
>>151249
>как минимум трое
Может, чуток больше?
Аноним 14/10/16 Птн 11:27:27  151253
>>151240
Well, you have to start with "G". This point counts as the equivalent of 1.

This point is

Gx = 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798
Gy = 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8

Double

You can double a point (x, y) using the doubling formula

p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F

num = 3 x x mod p

dem = 2 y mod p

lambda = num
modInverse(dem) mod p

Rx = (lambda lambda) - 2 x mod p
Ry = ((x - Rx) lambda) - y mod p

The result is (Rx, Ry)

Addition

You can add 2 points (x1, y1) and (x2, y2) using

p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F

num = (y1 - y2) mod p

dem = (x1 - x2) mod p

lambda = num
modInverse(dem) mod p

Rx = (lambda lambda) - x1 - x2 mod p
Ry = ((x1 - Rx)
lambda) - y1 mod p

Multiplication

The 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 this

25 = 11001 (in binary)

25 = 16 + 8 + 1

25 G = 16 G + 8 G + 1 G

You can work out 16G, 8G and G by just doubling G over and over. You then add them together.

16G + 8G + G = 25G

Like I said, it is pretty complex and will take a while to actually compute. The modular inverse function is slow.


При Gx1 = Gx2 и Gy1=Gy2
Addition не равно Double и G+G не равно 2G,
так как лямбда нум и дем уходят в нуль.
Хрень какая-то...
Аноним 14/10/16 Птн 12:43:41  151259
Седня по первому каналу про криповалюты говорили в "добром утре"
Аноним 14/10/16 Птн 13:08:53  151260
>>151259
Лучше бы говорили про манипуляции с точкой G, по эллиптической траэктории.
Аноним 14/10/16 Птн 18:33:28  151262
>>151260
Годная шуточка, нужно запомнить.
Аноним 15/10/16 Суб 11:08:14  151276
(1Кб, 285x41)
(1Кб, 306x42)
>>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, или нет?
Аноним 16/10/16 Вск 01:21:26  151284
>>151276
>sqrt(x3 + 8x + 5) = ±156,92673449734433316074944334497 ≠ 127
>В чём дело?
Проиграл. Добро пожаловать в увлекательный мир вычислений в полях классов вычетов по простому модулю.
Следи за пальцами:

x = 29
y = 127
x3 + 8x + 5 = 293 + 8 x 29 + 5 = 24626 = 84 x 293 + 14 ≡ 14 mod 293
y2 = 1272 = 16129 = 55 x 293 + 14 ≡ 14 mod 293

Здесь нельзя просто так вычислить корень, а никаких округлений быть не может. Читай теорию чисел, лолка.
Аноним 16/10/16 Вск 02:04:22  151285
(71Кб, 710x710)
>>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?..

Аноним 16/10/16 Вск 02:05:32  151286
(24Кб, 440x317)
>>151285
Пик2 отклеился.
Аноним 16/10/16 Вск 09:30:33  151287
>>151285
>Y = корень из 16129 = {127, -127} пик 2.
>Положительное и отрицательное. Оба - нечётные.
-127 ≡ 166 mod 293
А вообще, хуйню несёшь, хохол. Просто хуйню, полнейший бред, не имеющий связи с реальностью.
Я тебе сказал, читай теорию чисел, вычисление в полях классов вычетов по простому модулю.
Аноним 16/10/16 Вск 11:26:38  151288
>>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-битных чисел,
с этой своей теорией чисел, холоп?

Аноним 16/10/16 Вск 13:58:00  151291
>>151288
>Как будешь поступать в случае 256-битных чисел, с этой своей теорией чисел, холоп?
Точно так же, как и с любыми другими, дурачок. Минимальная матчасть нужна, чтобы ты понимал, о чём говоришь, а не пытался брать корень привычным методом, оперировать с рациональными числами на множестве натуральных и не совершал другие подобные ошибки.
Когда заботаешь её, то бери любой биндинг к openssl и считай, дело пары часов при совсем кривых руках. Если у тебя аллергия на матан, можешь брать прямо сейчас: быстрее обосрёшься — быстрее сдашься. А ещё можешь попробовать заюзать какую-нибудь библиотеку непосредственно для биткоина.
Аноним 16/10/16 Вск 19:27:59  151299
Кто-ниудь пытался искать коллизии в sha256?
Аноним 16/10/16 Вск 19:45:14  151302
Например дано 32 битное число, над ним производят операцию rotr 18 ^ rotr 7 ^ shr 3. Можно ли выполнить обратную операцию?

Аноним 17/10/16 Пнд 00:32:18  151309
>>151302
Пошел нахуй пидор
Аноним 17/10/16 Пнд 00:59:56  151310
Началось.
Аноним 17/10/16 Пнд 02:57:49  151311
>>151310
#altsbareback
Аноним 17/10/16 Пнд 03:51:19  151312
>>151302
#define SHR(x,n) ((x & 0xFFFFFFFF) >> n)
#define ROTR(x,n) (SHR(x,n) | (x << (32 - n)))
После того, как обратишь - можешь прислушаться к этому: >>151309
Аноним 17/10/16 Пнд 03:58:37  151313
>>151291
>Минимальная матчасть нужна
>чтобы ты
>не пытался брать корень привычным методом
√a^2, он и в Африке {a, -a};

Как взять результат из отрицательного числа по модулю, я уже понял:
-a mod p = |(|a| mod P) - P|

>оперировать с рациональными числами на множестве натуральных
А это, где?

>в случае 256-битных чисел
Они, по определению, целые, положительные.
Аноним 17/10/16 Пнд 07:56:30  151315
>>151312
Че ты мне реализацию написал, ты мне напиши обратную операцию или объясни почему этого нельзя сделать или расскажи сюрьекцтивна, биктивна или есть ли у нее взамиооднозначное соответствие между входом и выходом
__________________________________________
Еще раз для танкистов, дано 32 битное число x.
Сдвигаем x rotr 18, x rotr 7, x shr3. Ксорим между собой три получившихся числа. Получаем ответ. Вопрос: можно ли не зная исходного числа, только из ответа получить исходное число? То есть выполнить обратную оерацию.
Аноним 17/10/16 Пнд 10:15:26  151317
>>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; обратная для a
c xor a = b; обратная для b
А у тебя только c;

Ещё бы спросил, как получить e,f,g,h,x,K при известном
temp1 и его формуле:
temp1 = h + S3(e) + F1(e,f,g) + Kx;

Хеши - надо брутфорсить. Лол.
Аноним 17/10/16 Пнд 11:01:45  151319
>>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, потому что это одно и то же. Я думаю, проверка в лоб может показать, решается ли или нет.
Аноним 17/10/16 Пнд 11:02:32  151320
>>151319
b31b0b1...b30 конечно же.
Аноним 17/10/16 Пнд 11:19:48  151321
>>151319
Кстати 32 битное число реально просто сбрутить.
Аноним 17/10/16 Пнд 11:34:01  151323
(38Кб, 1116x590)
Вот я кратенько набросал чего хочу
Аноним 17/10/16 Пнд 11:39:14  151324
>>151323
>биты результата
>6
>30
>17
>31

>32 байта в 256 битах
Просто оставлю здесь, для тебя
FF = 11111111 = 2^8 = 256;
Ну и... 2^256 заодно.
Аноним 17/10/16 Пнд 11:41:10  151325
>>151324
> разбить кусок на 16 слов длиной 32 бита
Аноним 17/10/16 Пнд 11:44:40  151326
>>151324
К чему это вообще здесь, ты тип намекаешь на то что невозможно или что. Хоть объясняй
Аноним 17/10/16 Пнд 11:45:19  151327
>>151323
А ты не потерял 2, 1, 0 в начале shr3 или там нулевые значения в результирующем 32-битном слове?

>>151324
Сори, принял пронумерованные биты за байтовые значения.
Аноним 17/10/16 Пнд 11:46:06  151328
>>151327
Да там 0, их нет смысла писать x^0 = x
Я же написал
Аноним 17/10/16 Пнд 11:56:23  151330
>>151326
256 бит = 2^256 комбинаций = 115792089237316195423570985008687907853269984665640564039457584007913129639935 вариантов = 37352286850747159814055156454415 MIPS-лет
Аноним 17/10/16 Пнд 11:57:35  151331
>>151330
А как это относится к моей задаче. Я же не буду в лоб перебирать, так как ты думаешь
Аноним 17/10/16 Пнд 12:11:27  151332
(13Кб, 1119x165)
Или например так
Аноним 17/10/16 Пнд 12:18:42  151333
>>151323
>там нули
>при xor числа с одинаковой позицией дают 0

C чего взял?
>xor с нулём ничего не даёт
1 xor 0 = 1;
Аноним 17/10/16 Пнд 12:45:30  151334
>>151323
Должен, но слишком муторно. Решение системы, которую я описал выше, методом Гаусса по модулю 2, например, сработает всегда, и даст либо уникальное решение, либо бесконечный набор решений. Формулу для каждого бита может дать метод Крамера, но я не знаю, как его применять в случае модуля 2.
Аноним 17/10/16 Пнд 13:09:21  151335
>>151334
Я так понимаю, ты хочешь вычислить все множества результатов при вполне определённых, конкретных битах на входах, верно?
При этом, прописав эти множества в виде формул и законов в своей проге, для однозначного определения конкретных бит, исходя из заданного результата, входящего в эти множества. Так?
Но, всё-равно - ты получишь только отдельные биты входного значения, а не результат.
Ведь, на вход sha256 может быть подан файл, а не строка.
Аноним 17/10/16 Пнд 13:18:29  151336
(23Кб, 400x313)
>>151253
>P = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFF
пффффффф
Аноним 17/10/16 Пнд 13:25:55  151337
>>151336
http://coub.com/view/9aq9i
Аноним 17/10/16 Пнд 13:33:30  151338
>>151323
Ты хочешь биткойны майнить sat-солвингом чтоле? Не взлетит, CNF на 4-5 раундов sha2 уже выжрет несколько терабайт.
Аноним 17/10/16 Пнд 13:53:49  151339
>>151253
дабл и адд - разные операции.
адд - только для точек с разными координатами.
Если точки одинаковые, то только дабл.
Аноним 17/10/16 Пнд 16:04:29  151341
(386Кб, 844x600)
>>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.
Аноним 17/10/16 Пнд 16:51:13  151342
(363Кб, 931x615)
>>151341
Причём симметричный AES, где key - это sha256 от координат точки S полученной от ECDH.
Аноним 17/10/16 Пнд 17:34:50  151343
Ньюфаг в треде. Подскажи где можно купить биткоины по выгодному курсу?
Аноним 17/10/16 Пнд 17:42:29  151344
>>151333
#31 = 6-й бит ^ 13-й бит ^ значение 0 = 6 бит ^ 13 бит
Аноним 17/10/16 Пнд 17:43:21  151345
>>151334
Тыкни пожалуйста где ты написал
Аноним 17/10/16 Пнд 17:57:53  151346
>>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]
Аноним 17/10/16 Пнд 18:03:56  151347
>>151338
Спасибо, почитаю по этой теме. Я хочу обратить sha256 хеш. То есть по хешу искать строку, хеш от которой есть исходный хеш. y = sha256(x), мне нужно найти x зная y. Суть в том, что размер хеша фиксирован и составляет 256 бит. А размер x может быть любым, то есть возможны коллизии
Аноним 17/10/16 Пнд 18:14:00  151348
>>151343
btc-e.com
Аноним 17/10/16 Пнд 18:48:54  151349
>>151347
Так и гугли сразу sha256 preimage attack, велосипедить-то зачем?
Аноним 17/10/16 Пнд 18:57:32  151350
>>151341
>есть сообщение r, и соответствующая ей точка rP(x,y).
>Задача - получить r из координат точки rP.
Ебать ты молодец. Это вообще-то задача, на вычислительной сложности которой строятся криптосистемы на эллиптических кривых. k — приватный ключ, kG — публичный. Если бы можно было просто так вычислить k из kG, как думаешь, стали бы этот алгоритм использовать в битке?
>>151347
>Я хочу обратить sha256 хеш.
Впрочем, судя по всему, тут просто поехавших завезли. А я чёто сперва подумал, что это разговор только умных людей.
Деление для EC и обратных хеш им подавай, пиздец просто, охуительные истории.
Аноним 17/10/16 Пнд 19:09:50  151352
>>151350
Ну а вдруг у него получится и он сюда запостит. Можно будет резко продать квартиру - зашортить биток на все плечи, потом остров купить.
Аноним 17/10/16 Пнд 19:11:07  151353
>>151350
>k — приватный ключ, kG — публичный.
Внатуре, только сейчас догнал это.
>Если бы можно было просто так вычислить k из kG, как думаешь, стали бы этот алгоритм использовать в битке?
Ну, публичный ключ не светится же в битке, а только: бейс -> рипемда -> ша -> его.

>Деление для EC
>им подавай
Ну, ты что, внатуре предлагаешь,
для реал ЕСС асимметричной - каждый бит с точкой ассоциировать,
чтоб закодить этими точками сообщение r
из пикрелейтед >>151341
и гнать эти точки по открытому каналу в виде шифротекста, а именно - 256-битных x-ов + 256-битных y-ов для каждого бита?
Или, раз уж на то пошло, может лучше уже сразу массивы байтовых комбинаций прописать в ассоциациях?
Ну а как, тогда, по-другому,
достать Бобу открытый текст, закодированный в точку на EC?
Аноним 17/10/16 Пнд 19:33:55  151354
>>151353
>публичный ключ не светится
Иногда светится, миллионы Сатоши лежат на p2pk адресах.
Аноним 17/10/16 Пнд 19:46:54  151355
>>151353
>и гнать эти точки по открытому каналу в виде шифротекста
Тогда ничто не мешает вскрыть исходник и по таблице соответствий восстановить m.
Совсем другое дело - если rP шифруется, и получается в результате декрипта.
Тогда, имеет смысл прописывать соответствия rP значению бита/байта исходного текста r,
Чтобы его извлечь-таки из rP.
И раз уж открытый текст r - лишь множитель генераторной точки, а операция деления точки на точку отсутствует, то разумеется, этот множитель может быть связан с координатами кодируемой точки открытого текста rP - только ассоциативно.
Значит, нужно указать все возможные соответствия всех возможных результатов умножения открытого текста на P всем возможным входным значениям r (или их компонентам). Имеет ли это смысл при длине блока входящей инфы от Алисы в 256-бит?
Аноним 17/10/16 Пнд 19:57:08  151356
>>151350
Что такое деление для ЕС
Аноним 17/10/16 Пнд 20:01:19  151357
>>151356
Операция, обратная сложению удвоенных точек в порядке возрастания и в соответствии с битовой последовательностью числа-множителя в бинарном виде.
Аноним 17/10/16 Пнд 20:46:58  151358
>>151357
Бля, тебе за знаки что ли платят? Это умножением назыается.
Аноним 17/10/16 Пнд 21:13:03  151360
>>151358
Какие такие, знаки?
>Операция, обратная
Умножению точки на числовую константу.
Потому что точку на точку умножать неизвестно как.
Аноним 18/10/16 Втр 00:07:09  151363
(324Кб, 818x1854)
>>151353
>публичный ключ не светится же в битке
Светится, при отправке ты его должен вписать в транзакцию, иначе её никто не сможет проверить.
>>151356
>Что такое деление для ЕС
Пикрелейтед. Операция, обратная умножению точки на число, ага. Преобразование (kG, G) -> k. Вычислительно сложное настолько, что не существует известных алгоритомов, позволяющих осуществить её быстрее, чем перебором всех возможных значений.
Наверное.
Аноним 18/10/16 Втр 00:21:02  151364
>>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 ^ w18
a31 = w31 ^ w6 ^ w17
...
a1 = w1 ^ w8 ^ w17 ^ w4

a32, a31, ..., a1 известны
w32, w31, ..., w1 - неизвестные, их надо найти, 32 переменных
Выше записано 32 уравнения. Если среди них нет зависимых, то система всегда решается и дает тебе ответ. Например, методом Гаусса со всеми операциями по модулю 2. Если есть зависимые, то будет набор решений. Полагаю, может быть и так, и так, зависит от w.
Аноним 18/10/16 Втр 00:44:33  151365
>>151364
На простом примере:
надо обратить x xor (x ror 1), где x - 4битовый
Пусть x = 0101
x ror 1 = 1010
x xor (x ror 1) = 1111, это исходные данные.

Теперь x неизвестен.
x = x4x3x2x1
x ror 1 = x1x4x3x2
x xor (x ror 1) = 1111
1 = x4 ^ x1 (^ - xor для краткости)
1 = x3 ^ x4
1 = x2 ^ x3
1 = x1 ^ x2
В матричной форме:
1001|1
1100|1
0110|1
0011|1
Например, первая строка означает 1x4 ^ 0x3 ^ 0x2 ^ 1x1 = 1 (mod 2)
Одно зависимое, выкинем:
1100|1
0110|1
0011|1

x3 ^ x4 = 1
Либо x3 = 0, x4 =1, тогда решая дальше получим 0101
либо x3 = 1, x4 = 0, тогда получим 1010.
Оба ответа подходят для x xor (x ror 1) = 1111.

Следуя этой логики можно перейти к любой битности и любым хэшам. Только зачем, вот вопрос.
Аноним 18/10/16 Втр 00:45:30  151366
>>151365
> логики
логике
Аноним 18/10/16 Втр 08:35:36  151369
>>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
Аноним 18/10/16 Втр 08:38:12  151370
>>151369
Ой, сори, в следующем же разделе, не узрел открытого ключа Q.
Аноним 18/10/16 Втр 08:39:55  151371
>>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
Как ты получил матричную форму? Как ты определил зависимое?
Аноним 18/10/16 Втр 09:08:56  151372
>>151371
Попробуй заполнить эти свои строки битов для ротра и шифта - единицами.
И пропустить потом, циклом через каждый бит первой строки - ноль, глядя на то, какие биты изменяется у шр3.
А потом, через каждый бит второй строки, третьей... Так?
Аноним 18/10/16 Втр 09:22:35  151373
>>151371
Не надо пытаться подставлять, эта система всегда решается за 2 прохода. Другое дело, что уже на этапе одного такого преобразования возникают коллизии.

Зависимое есть, т.к. детерминант матрицы
1001
1100
0110
0011
равен 0.
Аноним 18/10/16 Втр 09:36:27  151374
(8Кб, 779x218)
>>151372
В одном столбике не может быть нечетного числа нулей
Аноним 18/10/16 Втр 09:53:36  151375
Ладно, я понял, почитаю метод Гаусса
Аноним 18/10/16 Втр 10:03:45  151376
>>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
Это хотел сказать?
Аноним 18/10/16 Втр 10:53:46  151377
>>151365
x = 1100 = x3x2x1x0
x rotr1 = 0110
y = x ^ (x rotr1) = 1010 = y3y2y1y0

y3y2y1y0
---------
x3x2x1x0
x0x3x2x1

y0 = x0 ^ x1
y1 = x1 ^ x2
y2 = x2 ^ x3
y3 = x3 ^ x0
_____________

x0 = y0 ^ x1 = 0 ^ x1
x0 = y0 ^ y1 ^ x2 = 1 ^ x2
x0 = y0 ^ y1 ^ y2 ^ x3 = 1 ^ x3

x1 = y1 ^ x2 = 1 ^ x2
x1 = y1 ^ y2 ^ x3 = 1 ^ x3
x1 = y1 ^ y2 ^ y3 ^ x0 = 0 ^ x0

x2 = 0 ^ x3
x2 = 1 ^ x0
x2 = 1 ^ x1

x3 = 1 ^ x0
x3 = 1 ^ x1
x3 = 0 ^ x2

Пусть x2 = 0:
x3 = 0
x0 = 1
x1 = 1
x3x2x1x0 = 0011 - первый ответ

Пусть x2 = 1:
x3 = 1
x0 = 0
x1 = 0
x3x2x1x0 = 1100 - второй ответ

Оба удовлетворяют если подставить
1010 = 1100 ^ (1100 rotr1)
1010 = 0011 ^ (0011 rotr1)


Аноним 18/10/16 Втр 11:38:49  151378
>>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|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|1|0|1| x input

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|0| x1 rotr7
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|1| x2 rotr13
0|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 shr3

1|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;
Аноним 18/10/16 Втр 11:41:47  151379
>>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) будет одинаковым, а значит функция сюръективна. Не факт что моя функция сюръективна
Аноним 18/10/16 Втр 11:42:22  151380
>>151378
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|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|
Аноним 18/10/16 Втр 11:48:06  151381
>>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|
Аноним 18/10/16 Втр 11:50:43  151382
>>151378
>>151380
>>151381
Ну да, видно что-то, но к чему это?
Аноним 18/10/16 Втр 11:54:57  151383
>>151381
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|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|
__________________________________________________________________________________

Аноним 18/10/16 Втр 11:56:26  151384
>>151382
Чтобы ты увидел, это.
Аноним 18/10/16 Втр 12:00:14  151385
>>151363
Ну, вот есть у тебя kG, и есть у тебя k.
Разве нельзя kG разелить на k/2 и получить 2G?
Аноним 18/10/16 Втр 12:01:18  151386
>>151384
Ну то что результат не особо отличается (а вернее он просто сдвинут) но задачу это не решает. Для "некрасивого" набора бит вида
0101 0010 0001 0101 0011 1010 1110 0110 не проследишь
Аноним 18/10/16 Втр 12:02:52  151387
>>151386
Задай набор из 32-х бит, я прослежу.
Я уже и говнокод на пыхэпе настрочил для этого.
Аноним 18/10/16 Втр 12:04:56  151388
>>151387
Да зачем, я тоже настрочил, а смысл, это бред. Нужно искать правила как один бит зависит от других
Аноним 18/10/16 Втр 12:05:26  151389
>>151387
Ты мне обратную функцию найди
Аноним 18/10/16 Втр 12:14:33  151391
>>151388
>как один бит зависит от других
А вот так вот:

a|b|c|a^b^c
0|0|0|1
0|0|1|1
0|1|0|1
0|1|1|0
1|0|0|1
1|0|1|0
1|1|0|0
1|1|1|1
Аноним 18/10/16 Втр 12:16:52  151392
>>151391
>0|0|0|1
Не правильно
Аноним 18/10/16 Втр 12:18:37  151393
>>151389
>расскажи сюрьекцтивна, биктивна или есть ли у нее взамиооднозначное соответствие между входом и выходом

Функция, обратная тройному xor - многозначна? Очевидно же.
Через обратный shr и rotr ты можешь сузить количество её значений.
Аноним 18/10/16 Втр 12:19:39  151394
>>151392
Да. Там 0.
Аноним 18/10/16 Втр 12:20:23  151395
>>151393
Так именно, суть в том что там 2 rotr и shr и им всем надо удовлетворить.
Аноним 18/10/16 Втр 12:21:46  151396
Ладно, короче, буду решать по своему методу, никто не в силах
Аноним 18/10/16 Втр 12:26:11  151397
>>151395
ну так пропиши по 4 варианта входных значений для каждого бита результата тройного xor,
и сопоставь затем их так, чтобы если результат не накладывается при обратном rotr и shr - чтобы выбирался другой.
Аноним 18/10/16 Втр 12:39:05  151398
>>151385
Имелось в виду деление точки на числовую константу.

Если k не простое, разумеется...
Аноним 18/10/16 Втр 14:37:38  151401
>>151387 а вот же он: >>151386
>0101 0010 0001 0101 0011 1010 1110 0110

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|

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|
Аноним 18/10/16 Втр 14:55:07  151402
>>151401
Поехавший
Аноним 18/10/16 Втр 15:27:11  151403
>>151402
C чего бы это?
Аноним 18/10/16 Втр 16:12:17  151404
>>151386
> Для "некрасивого" набора бит вида
0101 0010 0001 0101 0011 1010 1110 0110 не проследишь
Это число является одним из прообразов:
11110101011110111000000010101100
Аноним 18/10/16 Втр 16:13:08  151405
(13Кб, 924x498)
>>151404
Аноним 18/10/16 Втр 16:15:01  151406
>>151405
>>151404
Выведи 11110101011110111000000010101100 пожалуйста в виде таблицы
>>151401

>>151405
Что за язык
Аноним 18/10/16 Втр 16:27:01  151407
>>151405
Нет, у меня не получается

1111 0101 0111 1011 1000 0000 1010 1100

1110 0000 0010 1011 0011 1101 0101 1110
1001 1110 1010 1111 0111 0000 0001 0101
0010 0111 0110 1110 1011 1010 0100 1010

0010 0111 0110 1110 1011 1010 0100 1010 не равно 1111 0101 0111 1011 1000 0000 1010 1100
Аноним 18/10/16 Втр 16:34:12  151408
>>151407
Поторопился
1111 0101 0111 1011 1000 0000 1010 1100

0101 1001 1110 1010 1111 0111 0000 0001
1110 0000 0010 1011 0011 1101 0101 1110
0001 1110 1010 1111 0111 0000 0001 0101

1010 0111 0110 1110 1011 1010 0100 1010

1010 0111 0110 1110 1011 1010 0100 1010 не равно 1111 0101 0111 1011 1000 0000 1010 1100
Аноним 18/10/16 Втр 16:35:26  151409
>>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,
и ты получишь непрерывную последовательность
сцепленных, таким образом троек бит.
Аноним 18/10/16 Втр 16:45:41  151410
>>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| input

0|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| rotr7
1|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| rotr17
0|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| shr3

1|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.: Кто нибудь сможет поделить точку на число на эллиптической кривой?
Аноним 18/10/16 Втр 16:53:02  151411
>>151409
Там, в x3, ещё нули прописать надобно же.
Аноним 18/10/16 Втр 17:03:47  151412
>>151410
>>151405
>>151404
То есть, получается, работает. Как только я разберусь, я тебя похвалю
Аноним 18/10/16 Втр 17:11:41  151413
>>151412
11110101011110111000000010101100 = x
01011001111010101111011100000001 = x rotr 7
11100000001010110011110101011110 = x rotr 18
00011110101011110111000000010101 = x shr 3
01010010000101010011101011100110 = xor этих четырех
Оно. >>151404
Аноним 18/10/16 Втр 17:12:54  151414
>>151405
Это матпакет wolfram mathematica. Заебался писать это и отлаживать.
Аноним 18/10/16 Втр 17:17:55  151415
>>151414
А ты не можешь вкратции описать идею?
Аноним 18/10/16 Втр 17:22:00  151416
>>151413
>rotr 18
Почему 18?
>xor этих четырех
Почему 4-х?
Ты что, тройной ксор врубил?

А ну, давай проверю:
11110101011110111000000010101100 xor
01011001111010101111011100000001 =
10101100100100010111011110101101 xor
11100000001010110011110101011110 =
01001100101110100100101011110011 xor
10101100100100010111011110101101 =
01010010000101010011101011100110. Да.
Аноним 18/10/16 Втр 17:28:12  151417
>>151415
Без проблем.
>>151364
Аноним 18/10/16 Втр 17:29:10  151418
>>151417
Метод Гаусса?
Аноним 18/10/16 Втр 17:44:53  151419
>>151364
Нифига не соответствует намаляканным пикчам.
Аноним 18/10/16 Втр 17:46:21  151420
>>151419
Каким пикчам? Конкретнее
Аноним 18/10/16 Втр 17:52:41  151421
>>151418
LinearSolve, фиг его знает, чем он там решает. Все остальное - просто всякие переводы в нужные форматы, создание матрицы коэффициентов и проверка.
Аноним 18/10/16 Втр 17:58:39  151423
>>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

эллиптический ОП-кун, с таблицами из палочек.
Аноним 18/10/16 Втр 18:01:11  151424
>>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)
Одно и тоже
Пикчи формируют образ
Аноним 18/10/16 Втр 18:02:48  151425
>>151424
Вернее
a1 = w8 ^ w19 ^ w4
Аноним 18/10/16 Втр 18:04:14  151426
>>151425
Хотя да, тут криво как-то
>После xor пусть получается число a32a31a30...a2a1
где
a32 = w32 ^ w7 ^ w18
a31 = w31 ^ w6 ^ w17
...
a1 = w1 ^ w8 ^ w17 ^ w4
Аноним 18/10/16 Втр 18:04:39  151427
Ну суть ясна
Аноним 18/10/16 Втр 18:05:11  151428
>>151424
>То видимо опечатка, естественно без w4
>Пикчи формируют образ
В коде и пикчах - 3 значения и два xor'a,
а тут >>151413>>151416
и тут:
>>a1 = w1 ^ w8 ^ w17 ^ w4
4 значения и 3 xor'a
[soiler], и сходится.[/spoiler]

Аноним 18/10/16 Втр 18:11:58  151429
>>151428
Ахаха крыша поехала

11110101011110111000000010101100 = x
--------------------------------------------------------
01011001111010101111011100000001 = x rotr 7
11100000001010110011110101011110 = x rotr 18
00011110101011110111000000010101 = x shr 3
--------------------------------------------------------
01010010000101010011101011100110 = xor этих четырех
--------------------------------------------------------
10100111011011101011101001011010 = (x rotr 7) ^ (x rotr 18) ^ (x shr 3)
--------------------------------------------------------
Действительно, нам-то нужен xor трех
Аноним 18/10/16 Втр 18:14:26  151430
>>151429
НЕТ
Все совпадает, я ошибся в 5 бите там 0
Аноним 18/10/16 Втр 18:14:42  151431
>>151429
А, ну извините. Это я проебался, поксорив четыре. Но общей сути не меняет.
Аноним 18/10/16 Втр 18:18:45  151432
11110101011110111000000010101100 = x
01011001111010101111011100000001 = x rotr 7
11100000001010110011110101011110 = x rotr 18
00011110101011110111000000010101 = x shr 3
01010010000101010011101011100110 = xor этих четырех
10100111011011101011101001011010 = (x rotr 7) ^ (x rotr 18) ^ (x shr 3)

>некрасивое число 0101 0010 0001 0101 0011 1010 1110 0110

И что это, почему тройной ксор дает то что должен давать двойной ксор, ааааа
Аноним 18/10/16 Втр 18:20:32  151433
>>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 input
01100101101000110001011110100001 rotr8
11110100001011001011010001100010 rotr18
00011010001100010111101000010110 shr3
10001011101111101101100111010101 output
10101011000101110111110110110011 output_rotr8
10110110011101010110001011101111 output_rotr18
00010001011101111101101100111010 output_shr3

output ^ output_rotr8 ^ output_rotr18 ^ output_shr3
= 10000111101010110001110110110011
≠ 11010001100010111101000010110010

Тред, с криптовалют - плавно перетёк в ECC (что ещё куда не шло),
и в rotrы ебучие.
Аноним 18/10/16 Втр 18:24:36  151434
11101100111101110111100101001000 прообраз для 01010010000101010011101011100110 для функции (x rotr 7) ^ (x rotr 18) ^ (x shr 3)
Аноним 18/10/16 Втр 18:25:04  151435
>>151434
11101100111101110111100101001000 = x

10010001110110011110111011110010 = x rotr 7
11011110010100100011101100111101 = x rotr 18
00011101100111101110111100101001 = x shr 3

01010010000101010011101011100110 = xor этих трех
Аноним 18/10/16 Втр 18:25:09  151436
>>151434
А он один или их несколько?
Аноним 18/10/16 Втр 18:26:00  151437
>>151436
Скорее всего, несколько.
Аноним 18/10/16 Втр 18:26:38  151438
>>151429
Хули ты пиздишь?
Аноним 18/10/16 Втр 18:28:45  151439
>>151438
x ^ (x rotr 7) ^ (x rotr 18) ^ (x shr 3) дает такой же результат какой должен давать (x rotr 7) ^ (x rotr 18) ^ (x shr 3)
Аноним 18/10/16 Втр 18:31:47  151440
Ладно, ВСЕ, анон с вольфрамом гений
Аноним 18/10/16 Втр 18:40:11  151441
>>151440
http://freetexthost.com/eanerf40x6
Аноним 18/10/16 Втр 18:54:27  151442
>>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 обсасывается, а не эти всякие, брутфорсы хешей.
ОП
Аноним 18/10/16 Втр 19:21:30  151443
>>151442
Непонятно как устроен вольфрамовый молот
Аноним 18/10/16 Втр 19:30:08  151444
>>151443
http://peshera.org/khrono/Fotos-03/foto-281.jpg
Аноним 18/10/16 Втр 19:49:54  151445
dim = 32; //константа
ROR[x_, k_] := FromDigits[RotateRight[IntegerDigits[x, 2, dim], k], 2]; //функция сдвига
y = FromDigits["01010010000101010011101011100110", 2];
Em = IdentityMatrix[dim];//создаем квадратную матрицу 32х32
mtx = 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]; //представляем все числа внутри по модулю 2
BaseForm[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] //проверка
Аноним 18/10/16 Втр 19:53:08  151446
>>151445
Хотя понятно как сдвинуть, непонятно что внутри матрицы, после IdentityMatrix там единичная
Аноним 18/10/16 Втр 19:58:00  151447
>>151445
Так, вроде сдвиг ясен, после сложения в матрице появляются единички на тех местах, где нужно.
Что делает IntegerDigits[y, 2, dim]?
Аноним 18/10/16 Втр 20:06:38  151448
>>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.

Аноним 18/10/16 Втр 20:08:13  151449
>>151448
ponyal
Аноним 18/10/16 Втр 20:18:28  151451
>>151449
>Непонятно что делает transpose.
https://reference.wolfram.com/language/ref/Transpose.html
Меняет уровни списка, короче.
>Затем сложение ?
>mtx
сложение к матрице
что-то вроде push;
А затем, mtx = Mod[mtx, 2]
ROR это ксор?
Аноним 18/10/16 Втр 20:23:55  151452
>>151451
ROR - функция циклического сдвига
>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] - возвращает получившееся число в двоичном виде
Аноним 18/10/16 Втр 20:30:12  151453
(7Кб, 501x484)
>>151451
ROR это rotr. Xor это BitXor[].
mtx после всего получается как на пике. Это просто матрица с 0 и 1, которая делается из двух сдвинутых единичных (зеленая и красная диагонали из 1) и еще одной сдвинутой, от которой отрезано 3 строки (ну, отрезаются столбцы, а потом транспонируется, так что все равно что строки).
Это все коэффициенты в системе уравнений, которая потом решается LinearSolve. Например, в 1й строке 1 стоят на 7 и 18 месте С КОНЦА (потому что первым битом принято считать самый правый, то есть нумерацию столбцов лучше делать справа налево). Это отвечает уравнению x7 ^ x18 = a32.
Аноним 18/10/16 Втр 20:31:46  151454
>>151385
>Разве нельзя kG разелить на k/2 и получить 2G
Можно. Тебе повторить, какая сложность у этой операции деления?
Аноним 18/10/16 Втр 20:34:46  151455
>>151453
Можешь расписать всё это алгоритмом, в виде
1.
2.
3.?????
4. PROFIT!
или ссылку на онлайн вольфрам математика или exe под винду чтоб код вставить, не?
Аноним 18/10/16 Втр 20:36:16  151456
>>151455
https://rutracker.org/forum/viewtopic.php?t=4854855
Тоже думаю поставить, но сейчас времени нет
Аноним 18/10/16 Втр 20:36:49  151457
>>151455
> Можешь расписать всё это алгоритмом, в виде
Относительно x решается СЛАУ вида Mx=y, где y - образ (входное число), x - прообраз, а M - матрица с пика.
Аноним 18/10/16 Втр 20:43:08  151458
>>151454
>какая сложность...
kG/(k/2) = kG × ((k/2)^-1 mod P) = 2G, не?

Деление точки на числовую константу с точкой в результате, а не деление точки на точку, для получения числовой константы.
Аноним 18/10/16 Втр 21:41:40  151459
>>151458
А, ты там kG на k делить хочешь. Лол, это я тебе и без вычислений скажу: kG/k = G.
Только какой смысл в этом вычислении, если k тебе не известен, а известен только kG и G?
Аноним 18/10/16 Втр 23:26:59  151460
>>151459
Чтобы показать тебе, что операция деления жи есть.
Алсо, 150kG /k = 150G,
по идее должно быть.
Аноним 18/10/16 Втр 23:33:40  151461
>>151459
>это я тебе и без вычислений скажу: kG/k = G.
А если замутить что-то вроде:
kG / ((x(kG)^3 + ax + b) mod P / (y(kG)^2) mod P)
даст ли это что-то интересное?
Аноним 18/10/16 Втр 23:38:56  151462
>>151461
> ((x(kG)^3 + ax + b) mod P / (y(kG)^2) mod P)
Ой, тут походу единица будет.
А если y(G), взять или обратную ей?
Аноним 19/10/16 Срд 03:59:36  151463
>>151462
> взять или обратную ей?
Не знаю, я вот беру пизду твоей мамаши шлюхи обычно.
Аноним 19/10/16 Срд 07:03:07  151464
>>151463
>обычно
>твоей
Аноним 19/10/16 Срд 09:28:49  151465
>>151463
>>151464

>Не
>,
>обычно
>твоей
Пофиксил.
Аноним 19/10/16 Срд 22:50:59  151478
>>151460
Впрочем, тут уже я затупил: действительно, операция деления точки на число есть, но толку из этого никакого.
>x(kG)^3 + ax + b
Тут ты вообще точку в степень пытаешься возвести, а потом сложить с числом. Лолшто?
>y(G)
Кого-кого?
Аноним 20/10/16 Чтв 07:37:02  151483
>>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сть ли у неё аналоги на других языках программирования?
Аноним 20/10/16 Чтв 07:40:05  151484
>>151478
>x(kG)^3
имелась в виду координата x от точки kG;
kG(xkG, ykG);
xkG^3 mod P;
Короче, если с координатами поиграться, может получатся какие-то интересные точки.
Хотя... Забей...
Аноним 20/10/16 Чтв 08:04:17  151485
>>151483
> Взять строку 4, например, в ней - три единичных бита.
1x32 + 1x15 + 1x4 = 4-му элементу y (mod 2)
Ничего вниз никуда не идет.
Аноним 20/10/16 Чтв 08:33:34  151486
>>151485
32+15+4 = 51 mod 2 = 1, так?
Откуда тогда цифры 32, 15, 4?
>LinearSolve
Я как понял, при M⋅x=y; x = (M-1)⋅y,
где M-1 - матрица, обратная матрице М.
Аноним 22/10/16 Суб 13:44:21  151534
>>151453
А как найти матрицу, обратную матрице на пикче?
Аноним 22/10/16 Суб 16:39:29  151536
>>151534
Используя любой метод для обращения матриц. Только нужно не забывать делать все по модулю 2.
Да, вот такой код тоже сработает:
inv = Mod[Inverse[mtx]⋅Det[mtx], 2]
Mod[inv.IntegerDigits[y, 2, dim], 2]
Первый mod можно делать, можно не делать. Делать выгодно, чтобы inv содержал только 1 и 0. Вот эта матрица: http://freetexthost.com/ide12yhn11
Аноним 22/10/16 Суб 16:41:03  151537
>>151536
Если совсем упростить, то вот это обращает твой хэш http://textuploader.com/d5lrf
Аноним 22/10/16 Суб 19:22:50  151539
>>151536
>Вот эта матрица
Как искал? Методом Гаусса-Иордана?
>>151537
http://matrix.reshish.ru/inverse.php
Здесь, при попытке найти обратную матрицу вообще выдало вообще 5-ти значные отрицательные числа.
>это обращает твой хэш
Не хеш, а лишь один милипиздрический элемент его. Обратить хеш невозможно в принципе же , не?
Аноним 22/10/16 Суб 19:31:32  151541
>>151539
> Не хеш, а лишь один милипиздрический элемент его. Обратить хеш невозможно в принципе же , не?
Да.
Искал методом
> Inverse[mtx]
только там и есть отрицательные дробные значения. Нужно привести их к целым и взять по модулю 2.
> inv = Mod[Inverse[mtx]⋅Det[mtx], 2]
Аноним 22/10/16 Суб 19:31:58  151543
>>151539
> Здесь,
Ты что, вбил туда 32*32 значения?
Аноним 22/10/16 Суб 20:14:14  151544
>>151543
>Ты что, вбил туда 32*32 значения?
Нет, только единички.
А остальные ячейки нулями заполнил.
Там же кнопка есть. =)
Аноним 22/10/16 Суб 23:11:47  151554
>>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| input
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| rotr7
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| rotr18
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| shr3
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| 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-той строки матрицы, второй множитель - номер бита входного числа.
Аноним 22/10/16 Суб 23:30:26  151555
Что вообще эти ебанаты несут?
Аноним 22/10/16 Суб 23:47:54  151562
>>151555
Зарепортил неврастеника.
Аноним 22/10/16 Суб 23:54:51  151563
>>151555
Здесь кружок занимательной математики.
Один начинающий ебанушка пытается что-то понять, полторы продвинутых ебанушки пытаются ему что-то объяснить, один ебанушка скрывает свой уровень и наблюдает.
Аноним 22/10/16 Суб 23:55:26  151564
>>151555
Почему матом ругаешься?
Аноним 25/10/16 Втр 19:32:14  151604
>>150966 (OP)
Как не качать все блоки блокчейна в тяжеловесном Qt-клиенте, а только блоки с определённого заданного?
У dogecoin их овер миллион - шизануться можно же. Тут и bootstrap.dat не радует.
Аноним 25/10/16 Втр 20:16:11  151606
>>151107
Тут получаются даже не зеттабайты, а YOBIбиты YOBAбайтов.
Аноним 26/10/16 Срд 00:45:30  151609
>>150966 (OP)
Как с блокчейна получить актуальный блок для брутфорса соли (майнинг)?
Откуда вообще берутся новые блоки, как они формируются, и где собираются транзакции в блоки?
Можно ли вообще как-то майнить в режиме соло через блокчейн без установки каких-либо программ и участия в пулах?
Аноним 26/10/16 Срд 09:37:50  151613
>>151609
>для брутфорса соли (майнинг)
>майнить в режиме соло через блокчейн без установки каких-либо программ
Пиздос.
Аноним 26/10/16 Срд 17:05:09  151618
>>151613
А если у меня петафлопсы?
Аноним 26/10/16 Срд 20:42:32  151621
14775037522610 (23Кб, 505x337)
>>151618

Твои вопросы легко гуглятся.

>Как с блокчейна получить актуальный блок для брутфорса соли (майнинг)?

Скачать из сети, не?

>Откуда вообще берутся новые блоки

Создаются майнерами, не?

>как они формируются,

В Гугл.

>и где собираются транзакции в блоки?

Где, блядь, собираются? В блокчейне собираются.

>Можно ли вообще как-то майнить в режиме соло через блокчейн

Можно

>и участия в пулах?

это так и называется - соло-майнинг

>без установки каких-либо программ

Да, можешь считать хэш в уме, а последний блок качать через браузер.
Аноним 26/10/16 Срд 22:08:34  151622
>>151621
>Скачать из сети, не?
Не. Не current block, а блок без nonce, к которому её надо подобрать.
>Создаются майнерами, не?
Где?
>как они формируются
Куда конкретно?
>В блокчейне собираются.
После того, как nonce подобрана, и блок готов, да. А до того?
>Можно
>майнить в режиме соло через блокчейн
blockchain.info - тут только пулы.
>это так и называется - соло-майнинг
Ок.
Я так понимаю, нужно скачать bitcoin-Qt,
слить все блоки (а их там много), врубить его в режим сервера, и на сервер включить майнер с параметрами:
-o http://localhost:8332 -u RPCUSER -p RPCPASS
Потому что последний актуальный блок, ещё не сгенерённый и свежие транзакции, прилетают в виде tcp-пакетов прямо в прогу из одноранговой p2p.
И чтобы это было, надо загрузить ВСЕ БЛОКИ, ВСЕ 45 ГИГОВ, нафиг_не_нужных_блоков.
И как же подключиться к blockchain.info для этого?
>можешь считать хэш в уме, а последний блок качать через браузер.
Зачем мне последний блок, если за его генерацию уже выплачены битки предыдущему майнеру?
Мне надо новый блок сгенерить, я же майнер, ёпт.

И к чему ты Турчина поцепил, он что тоже майнит биток через блокчейн?
Аноним 26/10/16 Срд 23:45:02  151625
>>151618
Да хоть зетафлопсы, неграмотности это не оправдывает.

>как же подключиться к blockchain.info для этого?
Перестань называть этот сайт блокчейном. Блокчейн это база данных биткоина.
blockchain.info это отдельный сайт, просто показывающий тебе красивый интерфейс для просмотра этой базы.
Аноним 27/10/16 Чтв 00:32:48  151629
>>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?
Аноним 27/10/16 Чтв 00:33:51  151630
>>151629
>будобавлен
Будет добавлен.
самоfix
Аноним 27/10/16 Чтв 01:06:39  151631
>>151625
Короче, blockchain.info- это парсер.
А block chain дословно блок цепь - цепочка блоков.
База в виде bootstrap.dat или blk*.dat.
Так легче в башке укладывается всё это.
Аноним 27/10/16 Чтв 11:58:02  151641
>>151629
Создай сам, тупица.
Аноним 27/10/16 Чтв 19:04:58  151648
>>151641
Ты имеешь в виду блок с одной транзакцией получения сгенерированных биткоинов?

Вот так вот, что-ли?
https://blockchain.info/block/000000000000000002eb076392586c5b034ba3826ff6adb459bc57db4191943e

Транзакции откуда берутся для следующего блока?
Аноним 27/10/16 Чтв 23:21:01  151656
>>151648
Да, так.

Из сети.
Аноним 01/11/16 Втр 08:45:37  151993
>>151206
>α = (Gy-Gy)/(Gx-Gx) = 0/0 (неопределённость).
Там не нули.
Удвоение - это отдельная операция.
α = 3x^2/2y;

Интересно, есть ли операция, обратная удвоению?
Аноним 01/11/16 Втр 14:34:38  151997
>>151993
http://point-at-infinity.org/ecc/Prime_Curve_Standard_Projective_Coordinates.html

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 224 | 23 | 35
Назад Вверх Каталог Обновить

Топ тредов
Избранное