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
アカデミーキャンプ 2025GWeeeeeeK「がんばれ!!ロボコン」 DAY 3 / Academy Camp 2025GWeeeeeeK "Go For It!! Robocon" DAY 3
ks91
PRO
0
8
アカデミーキャンプ 2025GWeeeeeeK「がんばれ!!ロボコン」 DAY 2 / Academy Camp 2025GWeeeeeeK "Go For It!! Robocon" DAY 2
ks91
PRO
0
10
BIG HEXAPOD ROBOT KIT for Raspberry Pi 組み立てサポートマニュアル / BIG HEXAPOD ROBOT KIT for Raspberry Pi Assembly Support Manual
ks91
PRO
0
22
TANK ROBOT KIT for Raspberry Pi 組み立てサポートマニュアル / TANK ROBOT KIT for Raspberry Pi Assembly Support Manual
ks91
PRO
0
21
ロボットとのコミュニケーションマニュアル / Manual for Communicating with Robots
ks91
PRO
0
13
アカデミーキャンプ 2025GWeeeeeeK「がんばれ!!ロボコン」 DAY 1 / Academy Camp 2025GWeeeeeeK "Go For It!! Robocon" DAY 1
ks91
PRO
0
38
コードや知識を組み込む / Incorporating Codes and Knowledge
ks91
PRO
0
160
シリアスゲームとしての RPG / RPGs as Serious Games
ks91
PRO
0
47
"September 12th" ゲームのプロンプトの構造 / "September 12th" Game Prompt Structure
ks91
PRO
0
39
Other Decks in Technology
See All in Technology
地味にいろいろあった! 2025春のAmazon Bedrockアップデートおさらい
minorun365
PRO
2
550
もう難しくない!誰でもカンタンDocker入門 〜30分であなたのPCにアプリを立ち上げる〜
devops_vtj
0
170
C++26アップデート 2025-03
faithandbrave
0
1.2k
Running JavaScript within Ruby
hmsk
3
430
PostgreSQL Log File Mastery: Optimizing Database Performance Through Advanced Log Analysis
shiviyer007
PRO
1
150
Azure Maps Visual in PowerBIで分析しよう
nakasho
0
190
AI駆動で進化する開発プロセス ~クラスメソッドでの実践と成功事例~ / aidd-in-classmethod
tomoki10
1
680
より良い開発者体験を実現するために~開発初心者が感じた生成AIの可能性~
masakiokuda
0
230
GraphQLを活用したリアーキテクチャに対応するSLI/Oの再設計
coconala_engineer
0
190
【Λ(らむだ)】最近のアプデ情報 / RPALT20250422
lambda
0
300
AIとSREで「今」できること
honmarkhunt
3
680
クラウドネイティブ環境の脅威モデリング
kyohmizu
1
190
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
33
6.6k
Designing for humans not robots
tammielis
253
25k
GraphQLとの向き合い方2022年版
quramy
46
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
820
Building Adaptive Systems
keathley
41
2.5k
How to Think Like a Performance Engineer
csswizardry
23
1.6k
We Have a Design System, Now What?
morganepeng
52
7.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Making Projects Easy
brettharned
116
6.2k
GitHub's CSS Performance
jonrohan
1030
460k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.8k
Transcript
SFC / CSO ks91@sfc.wide.ad.jp — — 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
( ) ks91@cornell.edu ( ) ( ) t90123ks@sfc.keio.ac.jp ( )
(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