Hatena::ブログ(Diary)

torutkの日記 RSSフィード

2017-09-23

[]Java読書会「Javaで作って学ぶ暗号技術」を読む会(第1回)を終えて #javareading

今月から、新しい図書Javaで作って学ぶ暗号技術 - RSA,AES,SHAの基礎からSSLまでの読書会が開始です。本日は第1回を開催しました。

本日は、通算222回目、34冊目となります。参加人数は11名、申込人数は9名なので参加率は122%!

平均参加人数は11.8人なのでほぼ平均的な参加人数です。

読んだページ数は、まえがき含めて61ページです。これまでの平均ページ数は58.9ページですので、これまた平均的な進み具合です。

本日の話題のメモ

SHA-256, SHA-384, SHA-512は、まとめてSHA-2と呼びます。また、本には記載がありませんが、SHA-3というのもあります。昨日リリースされたJava SE 9からSHA-3が含まれます。

マン・イン・ザ・ミドル攻撃の技術は、会社のファイアウォールで社内外のhttpsアクセスを監視するために導入されています。

SSLプロトコルはもう古くてTLSプロトコル(TLS 1.2)が使われています。しかし、TLSを含めた広義の意味でSSLという言葉が使われています。今でもSSL証明書といった言い方が主流です。

真性乱数では、UNIXの/dev/randomがあります。これは、エントロピーが不足するとブロックされてしまいます。一方、ブロックされない /dev/urandom もありますが、擬似乱数でもあります。

最近のIntelプロセッサは真性乱数の回路を持っています(Ivy Bridge以降)。CPU命令のRDRANDです。

Java SE 9 のSecureRandomクラスではCPUの乱数生成を使用できるようになりました。(JEP 273 DRBG-Based SecureRandom Implementation)

本のサンプルコードはダウンロードできますが、コンパイルエラーが置きているようです。

本では最大公約数を計算する方法として、試行割り算法、ユークリッド互除法、バイナリー・ユークリッド互除法の3つをコード例とともに紹介し、速度を測っています。また、JavaのBigIntegerのgcdメソッドの速度も計測しており、一番高速なのがBigIntegerのgcdメソッドとあります。

そこで、BigIntegerのgcdメソッドのソースを参照してみました。すると、2つの値の桁数に応じてユークリッド互除法とバイナリ・ユークリッド互除法を使い分けて高速化を図っていました。

ユークリッドは古代(紀元前4〜3世紀)の数学者で、プトレマイオス1世の時代のアレキサンドリアにいた人です。プトレマイオス1世は、アレキサンダー大王とその没後のディアドコイ戦争の主要人物の一人です。

量子コンピューターでRSAが破られるのでしょうか?

System.currentTimeMillis() と、System.nanoTime()の違いについて

Tomohiro TakahashiTomohiro Takahashi 2017/09/25 17:03 >Java SE 9 のSecureRandomクラスではCPUの乱数生成を使用できるようになりました。(JEP 273 DRBG-Based SecureRandom Implementation)
https://github.com/YaSuenag/hwrand
のページが参考になりますね。

あと、
[Java 9 Security Enhancements]
http://www.petefreitag.com/item/843.cfm
ですか。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/torutk/20170923/p1