SlideShare a Scribd company logo
飾らないシンプルな
エントロピーの真実
または私は如何にして心配するのを
やめてurandomを愛するようになったか
Filippo Valsorda
Filippo Valsorda
@FiloSottile
暗号やシステムエンジニアをしている
CloudFlare DNS serverの開発者であり,
そのDNSSEC実装を構築した
暗号およびセキュリティプロトコルに関して、たびたび
実装を行い、教育をし、そして破っている
Filippo, plain simple reality of entropy ja
Filippo, plain simple reality of entropy ja
ランダムバイト列
b9dbba0b7370260aa57f24dbacaf0ade3654eae237c42cadc29b730067d5
467c29d6201bc412440c81c91cab1d95dadd0411ea57b86a3973bd9032ec
c7083a0c9e96c2e3b209bd2b0a1ee4cd0de345b32f2b848dba9312428aa7
d5a067d6be0b0a5dc90695946706e0940f0cf3821f056056e756df138f8c
29fb57acc4d21f382de3df24fbb6f3f145c3d9f194285d01ac05a44f4705
40a83c0aeeb1ed32320c072711074151c866fb8f66066bcead84edd84a49
e8dd7c02c76aeb1b15b573143d8caa49267d1a1c4b9a0fa0897595839046
29956205f91a5ce94951c8fad74370acda246f20d1b365e817a6d6ac9f31
e3171e3a50007001eabc655f2d0485d5c6f8b515de7f31d3c65956301af1
1e71a2215824fb401d7e2c839505924e57ec304dc63f7e11de0673fbac3d
a48526ba13edf61b50f20e110f9865c9692ea5c0981ac253262ebcde6242
a62701fb8cb3853557417811a63f7db94c5c050f2cd552b8eb99c99d5efe
3790f405544a46b713f7329d8f77e075053c7a6958798a99ddeb89f6381b
7a6676c612fc6cdc658584c29715c6739905b312a501cb5abb809f9d2714
319d92956f8b197119af6876091507c92eccf438dfca175211e1e6f060ba
ランダムバイト列
• キー
ssh-keygen -b 2048
SSL/TLS対称キー
• Nonces, (EC)DSA シグネイチャ
• TCPシーケンス番号, DNSクエリID
• ASLR (Address space layout randomization)
• パスフレーズ, トークン, …
• シミュレーション
ランダムバイト列
一様性
Filippo, plain simple reality of entropy ja
ランダムバイト列
予測不能性
予測不可能なイベント
予測不可能なイベント
• カーネルから見える
• エントロピーの可変量を伝える
• 一様ではなく通常は十分ではない
cryptographically secure
pseudo-random number
generator
CSPRNG
暗号論的に安全な疑似乱数生成器
CSPRNG
d5a067d6be0b0a5dc90695946706e0940f0cf3821f056056e756df138f8c
29fb57acc4d21f382de3df24fbb6f3f145c3d9f194285d01ac05a44f4705
40a83c0aeeb1ed32320c072711074151c866fb8f66066bcead84edd84a49
e8dd7c02c76aeb1b15b573143d8caa49267d1a1c4b9a0fa089759583....
SHA2-512( )
ハッシュベースCSPRNGの例
1492bcf6062118a27098c426122651
805958a9b7149a8b4c534fb8721d81
d59029df69ddb0624fb07ecd55d4e0
6a74e0dcdf8b209576d2705e520eb5
9f1a3212b0e30d445cd08d06b3ccf8
fedb56c946266cb56d0df18dd2c79f
a09087f6a580f7f1dc8a1840de5483
75aeebc228421a1dadc091b9088b99
1b38b2f77e478cff4cc92ff99fa06d9029a2cf8a10f5cfee83ea2e7bd8a123f7
31ff26c51e048c5030cb3469349fe221835f7ffc70893c5b2674691b7dafc744
SHA2-512
ハッシュベースCSPRNGの例
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
(15,235)
68d2cc2dc357f722f2b6fef1e99f86f022e9b2a3fcc104b55084393448c5cfee
ec9b6d165f2409f7f230bc22d72fb28664acd2e4f22eb3d5ff57097c52754f10
SHA2-512
ハッシュベースCSPRNGの例
68d2cc2dc357f722f2b6fef1e99f86f0
22e9b2a3fcc104b55084393448c5cfee
ec9b6d165f2409f7f230bc22d72fb286
64acd2e4f22eb3d5ff57097c52754f10
0fb23fc707f8764892f3fa613c6ea24b27d159a6d29e6daa1a53297e96155022
17268915dd48c60864aca2de3f1052664452b99f41e1f7221711529eb3191b9f
1.27589
ハッシュベースCSPRNGの例
0fb23fc707f8764892f3fa613c6ea24b27d159a6d29e6daa1a53297e96155022
17268915dd48c60864aca2de3f1052664452b99f41e1f7221711529eb3191b9f
エントロピープール
ハッシュベースCSPRNGの例
0fb23fc707f8764892f3fa613c6ea24b
27d159a6d29e6daa1a53297e96155022
17268915dd48c60864aca2de3f105266
4452b99f41e1f7221711529eb3191b9fSHA2-512( || 0 )
f376eb8cee3b9c4c44c3b467a417ab7b
f577ac352cf9705eda0e98b6e32daad7
318aa173e463e1f9cb1e93806fd702e3
c58946ff9320aae429385e22aa6ba271
エントロピープール
0fb23fc707f8764892f3fa613c6ea24b
27d159a6d29e6daa1a53297e96155022
17268915dd48c60864aca2de3f105266
4452b99f41e1f7221711529eb3191b9fSHA2-512( || 1 )
23658111d9e6893ce67f8e4b5c37bc1f
7e05a327b0b152c60e62df48fb7ab38a
23658111d9e6893ce67f8e4b5c37bc1f
7e05a327b0b152c60e62df48fb7ab38a
ランダムバイト
0fb23fc707f8764892f3fa613c6ea24b
27d159a6d29e6daa1a53297e96155022
17268915dd48c60864aca2de3f105266
4452b99f41e1f7221711529eb3191b9fSHA2-512( || 2 )
358d7a4b03fe0f7c67b5a1d62d106e62
b4eb1d15c10e5ed3200acead3f5d8d16
75dfb256a5a270a96f69393f3dbc0ee2
77df4663cafcbdcfca8ae32aadd605a8
…
ハッシュベースCSPRNGの例
☑ 一様性
☑ 予測不能性
☑ 制限なし
(これは一例であり、実際には使用しないこと)
エントロピープール
ランダムバイト
AES-CTR CSPRNG
カウンター(CTR)モード暗号
カーネルCSPRNG
/dev/urandom
(Linux)
/dev/urandom
$ head -c 300 /dev/urandom | xxd
0000000: f60d 4bda 67a1 83b4 d095 0db9 5366 0bb7 ..K.g.......Sf..
0000010: bf20 7474 2b62 8a61 88f5 7938 52ed f77a . tt+b.a..y8R..z
0000020: c2e7 6fa9 3c66 2998 dc54 a6cb 8c59 caa6 ..o.<f)..T...Y..
0000030: ac37 9640 81d5 1691 09ca 1d64 6d4f 7e9f .7.@.......dmO~.
0000040: 6749 8674 4df6 e6d3 85de 4e19 e979 63f2 gI.tM.....N..yc.
0000050: de44 09c5 d6c7 b26b 6407 35e9 5bd3 cbd6 .D.....kd.5.[...
0000060: 1a02 10b8 6111 9713 57a6 191c 5e27 601c ....a...W...^'`.
0000070: 6965 1fc2 5798 8faf 5f6b 104f 351c b2b5 ie..W..._k.O5...
0000080: 573f 9bb9 10bf 16f6 fe0d fdff 2e49 2d86 W?...........I-.
0000090: c183 1cc1 25f1 923e 54ec e235 7ff4 db05 ....%..>T..5....
00000a0: 56bd 2b26 4e87 a7ad 6542 f01e 183c 718f V.+&N...eB...<q.
00000b0: 7437 6f31 4af6 17e7 7870 ccc9 61e3 dd94 t7o1J...xp..a...
00000c0: 72d1 1b46 bf17 c8ed 2b67 f440 3c34 c22e r..F....+g.@<4..
00000d0: a21d eb8c 5a16 3a5e 8744 6920 2b16 6d81 ....Z.:^.Di +.m.
00000e0: 6ca8 8205 63e4 3b31 92ba 03ec 0b86 256d l...c.;1......%m
00000f0: 799f b699 3a2f 9699 bc31 72d6 c225 3021 y...:/...1r..%0!
カーネルCSPRNG
/dev/random
(OS X, BSD)
カーネルCSPRNG
CryptGenRandom()
(Windows)
カーネルCSPRNG
>
ユーザ空間CSPRNG
(OpenSSL, etc.)
話は以上で終わりかも
Linux
/dev/urandom
vs.
/dev/random
/dev/[u]random
4096 bitのプールをキープ
#define INPUT_POOL_SHIFT 12
#define INPUT_POOL_WORDS (1 << (INPUT_POOL_SHIFT-5))
static __u32 input_pool_data[INPUT_POOL_WORDS];
static struct entropy_store input_pool = {
.poolinfo = &poolinfo_table[0],
.name = "input",
.limit = 1,
.lock = __SPIN_LOCK_UNLOCKED(input_pool.lock),
.pool = input_pool_data
};
https://github.com/torvalds/linux/blob/85051e295/drivers/char/random.c
/dev/[u]random
このプールは高速CRCハッシュのような様々な
ソースから予測不能なバイト列を混合されている
/*
* This function adds bytes into the entropy “pool".
* The pool is stirred with a primitive polynomial of the
* appropriate degree, and then twisted. We twist by three
* bits at a time because it's cheap to do so and helps
* slightly in the expected case where the entropy is
* concentrated in the low-order bits.
*/
static void _mix_pool_bytes(struct entropy_store *r,
const void *in, int nbytes)
https://github.com/torvalds/linux/blob/85051e295/drivers/char/random.c
/dev/[u]random
乱数はSHA1ハッシュによって生成される
static void extract_buf(struct entropy_store *r, __u8 *out)
{
sha_init(hash.w);
/* Generate a hash across the pool, 16 words (512 bits) at a time */
for (i = 0; i < r->poolinfo->poolwords; i += 16)
sha_transform(hash.w, (__u8 *)(r->pool + i), workspace);
__mix_pool_bytes(r, hash.w, sizeof(hash.w));
hash.w[0] ^= hash.w[3];
hash.w[1] ^= hash.w[4];
hash.w[2] ^= rol32(hash.w[2], 16);
memcpy(out, &hash, EXTRACT_SIZE);
}
https://github.com/torvalds/linux/blob/85051e295/drivers/char/random.c
/dev/[u]random
/dev/random と /dev/urandom は同じコード、
サイズ、エントロピーソースを使っている
static ssize_t random_read(struct file *file,
char __user *buf, size_t nbytes, loff_t *ppos)
extract_entropy_user(&blocking_pool, buf, nbytes);
static ssize_t urandom_read(struct file *file,
char __user *buf, size_t nbytes, loff_t *ppos)
extract_entropy_user(&nonblocking_pool, buf, nbytes);
https://github.com/torvalds/linux/blob/85051e295/drivers/char/random.c
/dev/[u]random
わずかの違い:
/dev/random
• どれだけのエントロピーのビット数が
プール内で混成されたか推測
• 乱数の読み込みによってその数が減少
する
• 数が減るとブロックされる
/dev/[u]random
これでは実用的でない
エントロピーは減少しない。
/dev/[u]random
これでは実用的でない
エントロピーは尽き果てない。
/dev/[u]random
一度予測不能であれば、
永遠に予測不能。
(CSPRNGが秘密ビットをリークしない限り)
/dev/[u]random
もしCSPRNGが秘密ビットをリークすると:
• ストリーム暗号が機能しなくなる
• CTRが機能しなくなる
• TLSが機能しなくなる
• PGPが機能しなくなる
Cryptographyはこれに依存している
/dev/[u]random
/dev/random のブロッキング
• 非実用的
• 受け入れることはできない (TLS)
• 危険となり得る (サイドチャネル)
/dev/[u]random
/dev/urandom は暗号にとって安全
• Google の BoringSSL が使用
• Python, Go, Ruby が使用
• Sandstormは /dev/random をこれに変更
• 暗号の専門家も同じことを言う
• 他のOSには /dev/random はない
/dev/[u]random
✦ https://www.imperialviolet.org/2015/10/17/boringssl.html
✦ http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers/
✦ http://www.2uo.de/myths-about-urandom/
✦ http://blog.cr.yp.to/20140205-entropy.html
✦ https://developer.apple.com/library/mac/documentation/Darwin/Reference
/ManPages/man4/random.4.html
✦ https://en.wikipedia.org/wiki//dev/random#FreeBSD
✦ https://docs.sandstorm.io/en/latest/developing/security-practices/
✦ http://lists.randombit.net/pipermail/cryptography/2013-
August/004983.html
/dev/[u]random
• /dev/random は必要ない
• エントロピープールを計数し続ける必要
はない
• (havegedなどのように)プールを「補充」
する必要はない
• 乱数の「質」は低下しない
では、「すべきでないこと」を
見ていこう
Bad CSPRNG
シード不良のCSPRNG
起動直後の/dev/urandomではまだシードが不
十分で予測可能なことがある。
これはLinuxの欠点である。OSは電源オフ時に
エントロピープールを保存する必要がある。
あなたのディストリビューションではおそらくす
でにそうなっている。
シード不良のCSPRNG
起動直後の/dev/urandomではまだシードが不
十分で予測可能なことがある。
これはLinuxの欠点である。OSは電源オフ時に
エントロピープールを保存する必要がある。
たいていの組み込みデバイスではそうなってい
ない。
シード不良のCSPRNG
“弱いキーを持つネットワーク
デバイスが大量に広まっている”
Heninger, Durumeric, Wustrow, Halderman
https://factorable.net/
シード不良のCSPRNG
よりよいAPIが利用可能:
getrandom(2)
OpenBSDのgetentropy(2)と同等
urandomと同じように動作するが、ブート時に
プールが初期化する間ブロックする
https://lwn.net/Articles/606552/
シード不良のCSPRNG
ユーザー空間の CSPRNG はより
危険: シードの初期化を完全に忘れ
やすい。
実例:
http://android-
developers.blogspot.it/2013/08/some-
securerandom-thoughts.html
http://android-
developers.blogspot.it/2013/08/some-
securerandom-thoughts.html
シード不良のCSPRNG
“Bitcooinブロックチェインにおける
ECDSAの欠陥の攻略”
https://speakerdeck.com/filosottile/exploiting-ecdsa-
failures-in-the-bitcoin-blockchain
壊れたCSPRNG
2006年から2008年にかけて、Debian
のOpenSSL CSPRNGには欠陥があり、
PIDのみをシードとしていた。
それを使用する全ての出力、鍵、その他
が容易に推測可能であった。
https://www.debian.org/security/2008/dsa-1571
壊れたCSPRNG
--- openssl/trunk/rand/md_rand.c 2006/05/02 16:25:19 140
+++ openssl/trunk/rand/md_rand.c 2006/05/02 16:34:53 141
@@ -271,7 +271,10 @@ static void ssleay_rand_add(
else
MD_Update(&m,&(state[st_idx]),j);
+/*
+ * Don't add uninitialised data.
MD_Update(&m,buf,j);
+*/
MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c));
MD_Final(&m,local_md);
md_c[1]++;
Non-CS PRNG
全てのPRNGが暗号学的に安全とい
うわけではない
通常のPRNGはたいてい高速で均一
だが、予測不可能ではない。
Non-CS PRNG
Mersenne Twister (MT19937)
Python: random.random()
Ruby: Random::rand()
PHP: mt_rand()
Non-CS PRNG
MT19937のコアは624の整数による状態を持ち、
この関数のようになっている
def get_mt_random_number():
if index == 0: generate_numbers()
y = STATE[index]
y ^= y >> 11
y ^= (y << 7) & 0x9d2c5680
y ^= (y << 15) & 0xefc60000
y ^= y >> 18
index = (index + 1) % 624
return y
Non-CS PRNG
出力を見ることで、その出力が生成された状態の数
を再生成することは容易である。
def untemper(y):
x = y
for i in range(32 // 18):
y ^= x >> (18 * (i + 1))
for i in range(32 // 15):
y ^= (((y >> (i*15)) % (2**15)) << ((i+1)*15)) & 0xefc60000
for i in range(32 // 7):
y ^= (((y >> (i*7)) % (2**7)) << ((i+1)*7)) & 0x9d2c5680
x = y
for i in range(32 // 11):
y ^= x >> (11 * (i + 1))
return y
Non-CS PRNG
624の出力を見れば、将来にわたるすべての出力が
予測可能である。
def untemper(y):
x = y
for i in range(32 // 18):
y ^= x >> (18 * (i + 1))
for i in range(32 // 15):
y ^= (((y >> (i*15)) % (2**15)) << ((i+1)*15)) & 0xefc60000
for i in range(32 // 7):
y ^= (((y >> (i*7)) % (2**7)) << ((i+1)*7)) & 0x9d2c5680
x = y
for i in range(32 // 11):
y ^= x >> (11 * (i + 1))
return y
まとめ:
MTのようなnon-CS PRNGを使うな。
/dev/randomは不要。
ユーザー空間のCSPRNGは避けよう。
Use /dev/urandom
Thank you! Q/A
疑問? 不満がある? 言って!
Filippo Valsorda — @FiloSottile
filippo@cloudflare.com
Slides: https://filippo.io/entropy-talk

More Related Content

PPT
Altanative macro
PDF
debugging server with strace
PPTX
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
PDF
リナックスに置ける様々なリモートエキスプロイト手法 by スクハー・リー
PDF
C#次世代非同期処理概観 - Task vs Reactive Extensions
ODP
Buffer overflow
PDF
LINQ in Unity
PDF
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Altanative macro
debugging server with strace
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
リナックスに置ける様々なリモートエキスプロイト手法 by スクハー・リー
C#次世代非同期処理概観 - Task vs Reactive Extensions
Buffer overflow
LINQ in Unity
Deep Dive async/await in Unity with UniTask(UniRx.Async)

What's hot (20)

PDF
The basic of performance tuning
PPTX
PHP AST 徹底解説(補遺)
PDF
Reactive Extensions v2.0
PDF
Hokkaido.cap#3 ケーススタディ(基礎編)
PDF
Varnish 4.0 Release Party in Tokyo発表資料
PDF
超簡単!Apache TomcatをWindowsにインストール
PDF
超簡単! MySQLをWindowsにインストール
PDF
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
PDF
Inside winnyp
PDF
Scapy presentation
ODP
LibreOffice 4 under NetBSD with pkgsrc
PDF
超簡単! PostgreSQLをWindowsにインストール
PDF
Ylug 110th kpatch code reading
PDF
Scapy presentation Remake(訂正)
PDF
気になるあのコにアタック☆
PDF
GoogleのSHA-1のはなし
PDF
Project Loom - 限定継続と軽量スレッド -
PDF
Rpn and forth 超入門
PDF
Kobe.R #15 - Incanter チョットシッテル
The basic of performance tuning
PHP AST 徹底解説(補遺)
Reactive Extensions v2.0
Hokkaido.cap#3 ケーススタディ(基礎編)
Varnish 4.0 Release Party in Tokyo発表資料
超簡単!Apache TomcatをWindowsにインストール
超簡単! MySQLをWindowsにインストール
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Inside winnyp
Scapy presentation
LibreOffice 4 under NetBSD with pkgsrc
超簡単! PostgreSQLをWindowsにインストール
Ylug 110th kpatch code reading
Scapy presentation Remake(訂正)
気になるあのコにアタック☆
GoogleのSHA-1のはなし
Project Loom - 限定継続と軽量スレッド -
Rpn and forth 超入門
Kobe.R #15 - Incanter チョットシッテル
Ad

Viewers also liked (20)

PDF
kyoungju_kwak_the_new_wave_of_cyber_terror
PDF
Mickey pac sec2016_final_ja
PDF
Akila srinivasan microsoft-bug_bounty-(publish)
PDF
Guang gong escalate privilege by vulnerabilities in android system services ...
PDF
Pac sec2016 flyer_agenda
PDF
Kochetova+osipv atm how_to_make_the_fraud__final
PDF
Kasza smashing the_jars
PDF
Qinghao vulnerabilities mining technology of cloud and virtualization platfo...
PDF
Andersson hacking ds_mx_with_sdr_pac_sec_2016_english
PDF
Andersson hacking ds_mx_with_sdr_pac_sec_2016_japanese
PDF
James Windows10 elevator action final-jp
PDF
Hyperchem bad barcode final_ja
PDF
Martin UPnP - pacsec -final-ja
PDF
Richard high performance fuzzing ja
PDF
Maxim Bullet Proof Hosting Services pac_sec_jp
PDF
Adam blue toot pacsec-2015-jp
PDF
Villegas first pacsec_2016
PDF
Nishimura finding vulnerabilities-in-firefox-for-i-os-(nishimunea)
PDF
Moony li pacsec-1.8
PDF
Shusei tomonaga pac_sec_20171026_jp
kyoungju_kwak_the_new_wave_of_cyber_terror
Mickey pac sec2016_final_ja
Akila srinivasan microsoft-bug_bounty-(publish)
Guang gong escalate privilege by vulnerabilities in android system services ...
Pac sec2016 flyer_agenda
Kochetova+osipv atm how_to_make_the_fraud__final
Kasza smashing the_jars
Qinghao vulnerabilities mining technology of cloud and virtualization platfo...
Andersson hacking ds_mx_with_sdr_pac_sec_2016_english
Andersson hacking ds_mx_with_sdr_pac_sec_2016_japanese
James Windows10 elevator action final-jp
Hyperchem bad barcode final_ja
Martin UPnP - pacsec -final-ja
Richard high performance fuzzing ja
Maxim Bullet Proof Hosting Services pac_sec_jp
Adam blue toot pacsec-2015-jp
Villegas first pacsec_2016
Nishimura finding vulnerabilities-in-firefox-for-i-os-(nishimunea)
Moony li pacsec-1.8
Shusei tomonaga pac_sec_20171026_jp
Ad

Similar to Filippo, plain simple reality of entropy ja (20)

PDF
SDN Lab環境でのRobotFramework実践活用
PDF
スタート低レイヤー #0
PDF
A story of porting OpenBSD/luna88k
PDF
How to apt-get from the internal network: remote sshd with kneesocks
PDF
組み込みシステムのセキュリティ
PDF
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
PPT
HandlerSocket plugin for MySQL
PPTX
SYN cookies
PPT
20060520.tcp
PDF
オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~
ODP
Dtrace in netbsd
PDF
カオスエンジニアリング入門〜ChaosBladeの紹介〜
PPTX
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
PPTX
あんしんなWebサーバーのためのSSL設定
PPTX
第一回コンテナ情報交換会@関西
PDF
RouterBOARD with OpenFlow
PDF
C/C++プログラマのための開発ツール
PDF
#RouterBOARD 勉強会 OSPF検証班 appendix1.1
PDF
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
PDF
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
SDN Lab環境でのRobotFramework実践活用
スタート低レイヤー #0
A story of porting OpenBSD/luna88k
How to apt-get from the internal network: remote sshd with kneesocks
組み込みシステムのセキュリティ
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
HandlerSocket plugin for MySQL
SYN cookies
20060520.tcp
オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~
Dtrace in netbsd
カオスエンジニアリング入門〜ChaosBladeの紹介〜
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
あんしんなWebサーバーのためのSSL設定
第一回コンテナ情報交換会@関西
RouterBOARD with OpenFlow
C/C++プログラマのための開発ツール
#RouterBOARD 勉強会 OSPF検証班 appendix1.1
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪

More from PacSecJP (20)

PDF
Kavya racharla ndh-naropanth_fin_jp-final
PDF
Ryder robertson security-considerations_in_the_supply_chain_2017.11.02
PDF
Ryder robertson pac-sec skeleton 2017_jp
PDF
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final-j
PDF
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
PDF
Rouault imbert view_alpc_rpc_pacsec_jp
PDF
Rouault imbert alpc_rpc_pacsec
PDF
Di shen pacsec_jp-final
PDF
Di shen pacsec_final
PDF
Anıl kurmuş pacsec3-ja
PDF
Anıl kurmuş pacsec3
PDF
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
PDF
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
PDF
Yunusov babin 7sins-pres_atm_v4(2)_jp
PDF
Yunusov babin 7 sins pres atm v2
PDF
Shusei tomonaga pac_sec_20171026
PDF
Kavya racharla ndh-naropanth_fin
PDF
Lucas apa pacsec_slides_jp-final
PDF
Lucas apa pacsec slides
PDF
Marc schoenefeld grandma‘s old handbag_draft2_ja
Kavya racharla ndh-naropanth_fin_jp-final
Ryder robertson security-considerations_in_the_supply_chain_2017.11.02
Ryder robertson pac-sec skeleton 2017_jp
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final-j
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
Rouault imbert view_alpc_rpc_pacsec_jp
Rouault imbert alpc_rpc_pacsec
Di shen pacsec_jp-final
Di shen pacsec_final
Anıl kurmuş pacsec3-ja
Anıl kurmuş pacsec3
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Yunusov babin 7sins-pres_atm_v4(2)_jp
Yunusov babin 7 sins pres atm v2
Shusei tomonaga pac_sec_20171026
Kavya racharla ndh-naropanth_fin
Lucas apa pacsec_slides_jp-final
Lucas apa pacsec slides
Marc schoenefeld grandma‘s old handbag_draft2_ja

Filippo, plain simple reality of entropy ja