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
February 17, 2017
Technology
3
410
暗号技術のリテラシー / Cryptography Literacy
ブロックチェーンハブ主催で開催している連続講義 (通算第3期) ブロックチェーン基盤技術 第3回「暗号技術のリテラシー」のスライドです。2017年2月17日(金) に使用しました。
Kenji Saito
PRO
February 17, 2017
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
デジタルトランスフォーメーションと民主主義 / Digital Transformation and Democracy
ks91
PRO
0
3
We Never Took the Kobayashi Maru Test Until Now. What Do You Think of Our Solutions? — Journeys of the Mind Through a No-Win Game
ks91
PRO
0
14
思いつきが武器になる:研究というゲームを始めよう / Ideas Are Your Equipments : Let the Game of Research Begin!
ks91
PRO
0
73
ロボットを雰囲気(ヴァイブ)でプログラミングするこどもたち / Children Vibe-Programming Robots
ks91
PRO
0
21
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 3
ks91
PRO
0
30
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 2
ks91
PRO
0
33
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 1
ks91
PRO
0
160
未来へのフォワードキャスト / Forward Cast to the Future
ks91
PRO
0
86
発表と総括 / Presentations and Summary
ks91
PRO
0
61
Other Decks in Technology
See All in Technology
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
570
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
3
510
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
320
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
140
生成AI時代のデータ基盤
shibuiwilliam
6
3.8k
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
3
1.3k
dbt開発 with Claude Codeのためのガードレール設計
10xinc
1
830
Flutterでキャッチしないエラーはどこに行く
taiju59
0
220
AI時代に非連続な成長を実現するエンジニアリング戦略
sansantech
PRO
3
1.1k
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
1
420
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
2
280
Agile PBL at New Grads Trainings
kawaguti
PRO
1
340
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
Side Projects
sachag
455
43k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Agile that works and the tools we love
rasmusluckow
330
21k
Into the Great Unknown - MozCon
thekraken
40
2k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Why Our Code Smells
bkeepers
PRO
339
57k
4 Signs Your Business is Dying
shpigford
184
22k
Designing Experiences People Love
moore
142
24k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Transcript
3 SFC / CSO
[email protected]
— 3 — 2017-02-17 –
p.1/38
Bitcoin (2014-06-02) http://www.slideshare.net/kenjiurushima/20140602-bitcoin1-201406031222 — 3 — 2017-02-17 – p.2/38
1. 2. 3. — 3 — 2017-02-17 – p.3/38
1. – – — 3 — 2017-02-17 – p.4/38
(1) — 3 — 2017-02-17 – p.5/38
(2) H m H(m) = H(m′) m′ (m′ = m)
H(m) m m′ — 3 — 2017-02-17 – p.6/38
(+ ID) TX ID (+ Merkle ) ( ) —
3 — 2017-02-17 – p.7/38
SHA-256 × SHA-256 SHA-256 × RIPEMD-160 scrypt ( ) Ethash
(Dagger-Hashimoto ) DAG : Directed Acyclic Graph ( ) — 3 — 2017-02-17 – p.8/38
— 3 — 2017-02-17 – p.9/38
(RSA) RSA ECDSA ( DSA : Digital Signature Algorithm) —
3 — 2017-02-17 – p.10/38
: < , > : : < , , >
: OK NG — 3 — 2017-02-17 – p.11/38
( ) — 3 — 2017-02-17 – p.12/38
M A 60BTC — 3 — 2017-02-17 – p.13/38
: y2 = x3 + ax + b 3 X
A + B = D A + A + . . . = nA A B C D — 3 — 2017-02-17 – p.14/38
(EC) DSA G(x, y), p, a, b nG G, p,
a, b n (n ) k(0 ≤ k ≤ n) kG, n nG — 3 — 2017-02-17 – p.15/38
ECDSA secp256k1 Certicom : 256 : 512 160 — 3
— 2017-02-17 – p.16/38
( )
[email protected]
( ) ( )
[email protected]
( )
(SFC) — 3 — 2017-02-17 – p.17/38
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 58 — 3 — 2017-02-17 – p.18/38
( ) → (malleability) — 3 — 2017-02-17 – p.19/38
2. – – (malleability) — 3 — 2017-02-17 – p.20/38
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 — 3 — 2017-02-17 – p.21/38
Script Processing Concatinates scripts: input → output Stack-based processing —
3 — 2017-02-17 – p.22/38
(malleability) ⇒ SegWit . . . ( 2.0 ) —
3 — 2017-02-17 – p.23/38
(1) — 3 — 2017-02-17 – p.24/38
(2) — 3 — 2017-02-17 – p.25/38
— 3 — 2017-02-17 – p.26/38
(= ) — 3 — 2017-02-17 – p.27/38
256 256 ↓ acfedf64beb9d4c1670d1d0890e3231f5effc72fc8e54c3e31035196f86ae1f0 — 3 — 2017-02-17 – p.28/38
m n OK : OP_2 <A> <B> <C> OP_3 OP_CHECKMULTISIG
: OP_DUP OP_HASH160 < > OP_EQUALVERIFY OP_EVAL : < A> < A> < C> < C> < > — 3 — 2017-02-17 – p.29/38
— 3 — 2017-02-17 – p.30/38
50% 253 50% 23 OK n 2n 2 160 80
— 3 — 2017-02-17 – p.31/38
— 3 — 2017-02-17 – p.32/38
3. – – Web of Trust — 3 — 2017-02-17
– p.33/38
( ) . . . — 3 — 2017-02-17 –
p.34/38
( ) — 3 — 2017-02-17 – p.35/38
( ) A B SA SB SA ∩ SB —
3 — 2017-02-17 – p.36/38
Web of Trust ( ) — 3 — 2017-02-17 –
p.37/38
— 3 — 2017-02-17 – p.38/38