タグ

ブックマーク / hnw.hatenablog.com (3)

  • PHPのround関数とは一体なんだったのか - hnwの日記

    (7/3 14:05追記)Javaに関する記述について誤認があったので盛大に書き換えました。Java 6、Java 7、Java 8それぞれで実装が変わっていたようです。 (7/13 23:55追記)記事中ではroundを四捨五入と言い切ってしまっています。これは筆者がC99のroundを基準に考えているためですが、言語によっては偶数丸めになっているround関数も珍しくありません。ご注意ください。 PHPのround関数について、ネット上で次のような記述を見つけました。 PHP 四捨五入の計算を間違える唯一の言語として畏れられていましたが、そのバグは治っているかもしれません(治ってないかもしれません) 主要なプログラミング言語8種をぐったり解説 - 鍋あり谷あり 各言語を面白おかしく紹介する内容とはいえ、ずいぶん雑な理解だなーという印象です。ゆるふわな話だけでPHPがdisられ続けるの

    PHPのround関数とは一体なんだったのか - hnwの日記
  • 江戸前セキュリティ勉強会でgithub.comの弱い鍵を探す話をしました - hnwの日記

    先週1/24(土)に江戸前セキュリティ勉強会で「偶然にも500万個のSSH公開鍵を手に入れた俺たちは」というタイトルでLT発表してきました。以下が発表資料です。 このプレゼン資料はLT用に圧縮して作ったので、わかりにくい部分があったかもしれません。そこで、Q&A形式で補足を書いてみました。 「多数の公開鍵から共通の素因数を探す攻撃はSSHユーザー鍵についても現実的脅威なのか?」 結論から言うと、SSHユーザー鍵に限れば脅威でないというのが個人的な考えです。 今回、論文「Mining Your Ps and Qs: Detection of Widespread Weak Keys in Network Devices」(PDF)を参考に多数のRSA公開鍵から最大公約数を求めるような攻撃をSSHユーザー鍵について試してみました。元論文では、この攻撃はSSHホスト鍵とSSL証明書に対して行われ

    江戸前セキュリティ勉強会でgithub.comの弱い鍵を探す話をしました - hnwの日記
  • RSA鍵の生成時に確率的素数判定法を使って問題ないのか - hnwの日記

    前回記事「RSA公開鍵から素数の積を取り出す方法」でも紹介しましたが、RSA鍵の生成には巨大な2つの素数p,qが必要です。近年一般的に使われている2048bit RSA鍵の場合、p,qの大きさは1024bit、10進で約308桁の数になります。 このRSAのアルゴリズム中ではpとqを法としたフェルマーの小定理(正確にはその拡張であるオイラーの定理)を利用しています。つまり、pとqが合成数だとRSA暗号の大前提が狂ってしまいますので、pとqには確実に素数を選ぶ必要があります。 ところで、OpenSSLのRSA鍵生成の実装では、pとqの素数判定にMiller-Rabin素数判定法が用いられています。Miller-Rabin素数判定法は片側誤りの確率的アルゴリズムで、「たぶん素数」「確実に合成数」の判定ができるようなものです。pとqの素数性が重要なのに、その判定に確率的アルゴリズムを使っても問題

    RSA鍵の生成時に確率的素数判定法を使って問題ないのか - hnwの日記
  • 1