[Blockchain] Ubuntu20.04・OpenSSLで秘密鍵公開鍵の操作

$ openssl version
OpenSSL 1.1.1f 31 Mar 2020

### 秘密鍵の作成
$ openssl ecparam -genkey -name secp256k1 -out private.pem
// ecparamは楕円曲線暗号における楕円曲線パラメータに関するサブコマンド
$ cat private.pem
—–BEGIN EC PARAMETERS—–
BgUrgQQACg==
—–END EC PARAMETERS—–
—–BEGIN EC PRIVATE KEY—–
MHQCAQEEINB5OV0K2ggkM2a0bmVTcj7FioqK5TDI9NJAxgOUjcFOoAcGBSuBBAAK
oUQDQgAELnHK99GtgUL9F3Q5YSwYa5ZdI8uY0P5diBTZZN4Ld7feo13zqYO9oQm3
G1YHB2ITeG81+KridKnVOzDk0RwA7w==
—–END EC PRIVATE KEY—–

### 公開鍵の作成
$ openssl ec -in private.pem -pubout -out public.pem
// echは楕円曲線暗号に関するサブコマンド
read EC key
writing EC key
$ cat public.pem
—–BEGIN PUBLIC KEY—–
MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAELnHK99GtgUL9F3Q5YSwYa5ZdI8uY0P5d
iBTZZN4Ld7feo13zqYO9oQm3G1YHB2ITeG81+KridKnVOzDk0RwA7w==
—–END PUBLIC KEY—–

### メッセージの作成、ハッシュ化
$ sha256sum test.txt | cut -c1-64 > hashed.txt
$ cat hashed.txt
d8aa344276524074fbfec2249bedb89a5ddccc9dc57504e92a9963f48bdf68d1

### verify
ハッシュ化した書類と秘密鍵でhashed.sigを作成し、公開鍵とhashed.sigで検証する
$ openssl dgst -SHA256 -sign private.pem hashed.txt > hashed.sig
// dgstはメッセージダイジェストを計算
$ ls
hashed.sig hashed.txt private.pem public.pem test.txt
$ openssl dgst -SHA256 -verify public.pem -signature hashed.sig hashed.txt
Verified OK

apostilleのことだね