Pebble Coding

ソフトウェアエンジニアによるIT技術、数学の備忘録

2019-01-01から1ヶ月間の記事一覧

rust 定数の2次元配列宣言方法

C言語とは配列長部分の定義順序が逆になります。 3 x 2の2次元配列 const A: [[u8; 2]; 3] = [ [0x01, 0x02], [0x03, 0x04], [0x05, 0x06] ]; プログラミングRust作者: Jim Blandy,Jason Orendorff,中田秀基出版社/メーカー: オライリージャパン発売日: 2018…

rust で並列処理

rust は並列処理が作りやすい言語である。言語レベルで完全にスレッド安全性が担保されていると言って良いだろう。 以下は0から15の値の合計を4つのスレッドを使って計算するrustのソースである。 extern crate crossbeam; fn main() { let mut sum0: u64 = …

macOS で grin のCPUマイニングを試みる

macOS grin-miner でCPUマイニングを試したときの手順メモです。 結果的にハッシュパワーが足りずマイニングはできませんでした。 ビルド grin 本体とgrin-minerをクローンしてビルドします。 $ git clone https://github.com/mimblewimble/grin.git $ cargo…

bitcoin ウォレットダンプの値をpythonで計算してみる

ウォレットをテキストファイルに出力する。 $ bitcoin-cli dumpwallet pebble8888wallet.txt { "filename": "/Users/pebble8888/Library/Application Support/Bitcoin/pebble8888wallet.txt" } $ cat pebble8888wallet.txt # Wallet dump created by Bitcoin…

secp256k1 の有理点のxの小さい方から100個の点の座標を求める

SageMathを使います。 計算の都合上x一つに付きy一つの点のみとしています。(※1) q = 2**256 - 2**32 - 977 K = GF(q) i = 1 for x in range(0, 1000): try: n = (x ** 3 + 7) % q y = K(n).nth_root(2) print("P"+str(i)+": ("+str(x)+","+str(y)+")") if i…

secp256k1のベースポイントの謎

secp256k1のベースポイントの性質をみていきます。 有理点(x, y)はおよそ256ビットの範囲内で均等に値がばらけていると考えられます。 ベースポイントGの倍数 を計算したときのx, yの値はおよそ256ビットの値がランダムに並んだようになりますが、たまたま端…

macOS に bitcoin core をインストールする

macOS 10.14.2 mojave に bitcoin core をインストールしてみます。 testnet で550MBのプルーンモードで起動させるので、ディスク容量の空き容量はは2GBあればよさそうです。 (550MBを指定しても2GBのサイズになる理由は分かっていません。) mainnet で起動…

SageMath 入門

ほぼpythonと同じ構文と考えておけばよいです。 100未満の素数を出力する sage: x = 1 sage: while x < 100: ....: if x.is_prime(): ....: print(x) ....: x = x + 1 ....: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 プログ…

SageMath のインストール方法と使い方

数学の研究に便利な SageMath のインストール方法と使い方です。 macOSの場合です。 以下のページのいずれかから以下のファイルをダウンロードします。 http://ftp.riken.jp/sagemath/osx/intel/index.html http://ftp.yz.yamagata-u.ac.jp/pub/math/sage/os…

楕円曲線における離散対数問題

例として、 を考えます。 というのは数として、43で割った余り、つまり、0,1,2,3,...,42 だけの世界を考えるということです。 x, y の値として0,1,2,3,...,42だけを考えます。 42よりも大きな値は43で割った余りと同一の値であるとみなします。 するとの式を…

楕円曲線の有理点の数の求め方 schoof アルゴリズムその4

y'についてもみていきます。 を使うと、 残りのフロベニウス写像部分は したがって、 分母を揃え、分子だけ取り出したものがで割り切れるかどうかを調べます。 コンピュータ計算上は分母にyが含まれるか否かの分岐が面倒なので、 分子だけの計算結果にyが含…