Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
暗号技術のリテラシー / Cryptography Literacy
Search
Kenji Saito
PRO
June 28, 2017
Technology
0
240
暗号技術のリテラシー / Cryptography Literacy
ブロックチェーンハブ主催で開催しているブロックチェーン基盤技術講義『暗号技術のリテラシー』のスライドです。2017年6月28日(水) に使用しました。
Kenji Saito
PRO
June 28, 2017
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
続・スマートコントラクトと分散ファイナンス / Smart Contracts and Decentralized Finance, Continued
ks91
PRO
0
16
スマートコントラクトと分散ファイナンス / Smart Contracts and Decentralized Finance
ks91
PRO
0
57
シン・ブロックチェーン / Truth of Blockchain
ks91
PRO
0
86
パスワード/パスフレーズと認証 / Password, Passphrase and Authentication
ks91
PRO
0
32
git と GitHub / git and GitHub
ks91
PRO
0
35
ソフトウェアの開発と保守 / Software Development and Maintenance
ks91
PRO
0
48
インターネットの特徴 / Features of the Internet
ks91
PRO
0
34
インターネットのガバナンス / Governance of the Internet
ks91
PRO
0
29
暗号学的ハッシュ関数 / Cryptographic Hash Function
ks91
PRO
0
37
Other Decks in Technology
See All in Technology
asken AI勉強会(Android)
tadashi_sato
0
140
生成AI開発案件におけるClineの業務活用事例とTips
shinya337
0
180
FOSS4G 2025 KANSAI QGISで点群データをいろいろしてみた
kou_kita
0
240
Zephyr RTOSを使った開発コンペに参加した件
iotengineer22
0
150
KubeCon + CloudNativeCon Japan 2025 Recap
ren510dev
1
300
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
6
2.6k
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
3
260
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
How Community Opened Global Doors
hiroramos4
PRO
1
130
使いたいMCPサーバーはWeb APIをラップして自分で作る #QiitaBash
bengo4com
0
1.3k
AI専用のリンターを作る #yumemi_patch
bengo4com
4
2k
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
140
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Docker and Python
trallard
44
3.5k
Bash Introduction
62gerente
614
210k
Documentation Writing (for coders)
carmenintech
72
4.9k
Navigating Team Friction
lara
187
15k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
How STYLIGHT went responsive
nonsquared
100
5.6k
Designing Experiences People Love
moore
142
24k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
GitHub's CSS Performance
jonrohan
1031
460k
Designing for humans not robots
tammielis
253
25k
Transcript
SFC / CSO
[email protected]
— — 2017-06-27 – p.1/40
( ) SFC ( ) CSO (Chief Science Officer) CEO
1993 M.Eng ( ) 2006 ( ) SFC 16 P2P 2011 → ( ) — — 2017-06-27 – p.2/40
Bitcoin (2014-06-02) http://www.slideshare.net/kenjiurushima/20140602-bitcoin1-201406031222 — — 2017-06-27 – p.3/40
1. 2. 3. — — 2017-06-27 – p.4/40
1. – – ECDSA ( DSA) Base58Check — — 2017-06-27
– p.5/40
(1) — — 2017-06-27 – p.6/40
(2) H m H(m) = H(m′) m′ (m′ = m)
H(m) m m′ H(m) = H(m′) ( m′ = m) — — 2017-06-27 – p.7/40
SHA-1 https://shattered.it 2017 2 Google (CWI) — — 2017-06-27 –
p.8/40
ID (+ ) TX ID (+ Merkle ) ( )
— — 2017-06-27 – p.9/40
SHA-256 × SHA-256 SHA-256 × RIPEMD-160 (1 ) scrypt (
) Ethash (Dagger-Hashimoto ) DAG : Directed Acyclic Graph ( ) — — 2017-06-27 – p.10/40
— — 2017-06-27 – p.11/40
(RSA) RSA (RSA : Rivest, Shamir, Adleman) ECDSA ( DSA
: Digital Signature Algorithm) — — 2017-06-27 – p.12/40
: < , > : : < , , >
: OK NG — — 2017-06-27 – p.13/40
( ) ← CA — — 2017-06-27 – p.14/40
M A 60BTC — — 2017-06-27 – p.15/40
– : y2 = x3 + ax + b 3
X A + B = D A + A + . . . = nA A B C D — — 2017-06-27 – p.16/40
(EC) DSA G(x, y), p, a, b nG G, p,
a, b n (n ) k(0 ≤ k ≤ n) kG, n nG — — 2017-06-27 – p.17/40
ECDSA secp256k1 Certicom : 256 : 512 ( ) 160
— — 2017-06-27 – p.18/40
( )
[email protected]
( ) ( )
[email protected]
( )
(SFC) — — 2017-06-27 – p.19/40
Base58Check 1. SHA-256 × RIPEMD-160 2. ( = 0) 3.
SHA-256 × SHA-256 4. 4 2. ( ) 5. base58 base58 10 + 26×2 - 4 (l,I,O,0) = 58 l = , I = , O = , 0 = 58 — — 2017-06-27 – p.20/40
( ) → (malleability) — — 2017-06-27 – p.21/40
2. (malleability) ( ) — — 2017-06-27 – p.22/40
Script (General) Output: OP_DUP OP_HASH160 OP_PUSHDATA* <Public-key digest> OP_EQUALVERIFY OP_CHECKSIG
Input: OP_PUSHDATA* <Signature> OP_PUSHDATA* <Public key> TX output addressed to a public-key digest and referring input — — 2017-06-27 – p.23/40
Script Processing Concatinates scripts: input → output Stack-based processing —
— 2017-06-27 – p.24/40
(malleability) ⇒ SegWit . . . ( 2.0 ) —
— 2017-06-27 – p.25/40
(1) — — 2017-06-27 – p.26/40
(2) — — 2017-06-27 – p.27/40
(3) — — 2017-06-27 – p.28/40
: , , 1 FinTech , 2016 https://www.boj.or.jp/announcements/release_2016/data/rel160831b5.pdf — —
2017-06-27 – p.29/40
( ) (= ) — — 2017-06-27 – p.30/40
256 256 ↓ acfedf64beb9d4c1670d1d0890e3231f5effc72fc8e54c3e31035196f86ae1f0 — — 2017-06-27 – p.31/40
m n OK : OP_2 <A> <B> <C> OP_3 OP_CHECKMULTISIG
: OP_DUP OP_HASH160 < > OP_EQUALVERIFY OP_EVAL : < A> < A> < C> < C> < > — — 2017-06-27 – p.32/40
— — 2017-06-27 – p.33/40
50% 253 50% 23 OK n 2n 2 160 80
SHA-1 (160 ) — — 2017-06-27 – p.34/40
— — 2017-06-27 – p.35/40
3. – – — — 2017-06-27 – p.36/40
( ) . . . — — 2017-06-27 – p.37/40
( ) — — 2017-06-27 – p.38/40
( ) A B SA SB SA ∩ SB —
— 2017-06-27 – p.39/40
— — 2017-06-27 – p.40/40