OpenSSH 5.7でサポートされた楕円DSAを試してみた
OpenSSH 5.7で楕円DSA(ECDSA)が使えるようになったらしい。
OpenSSH 5.7 has been released. Some new features in this release include Elliptic Curve Cryptography modes for key exchange (ECDH) and host/user keys (ECDSA), a protocol extension to support a hard link operation added to sftp, new options for scp and ssh, and more.
早くもGentooにopenssh-5.7が降りてきたので早速楕円DSAを作ってみた。Gentooパネェ。
楕円DSAの作り方
ssh-keygen(1)でtypeにecdsaを指定すればok。
$ ssh-keygen -t ecdsa Generating public/private ecdsa key pair. Enter file in which to save the key (/home/matsuu/.ssh/id_ecdsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/matsuu/.ssh/id_ecdsa. Your public key has been saved in /home/matsuu/.ssh/id_ecdsa.pub. The key fingerprint is: e7:6c:e4:af:86:36:31:ad:b7:e4:97:4b:8d:e1:c9:44 matsuu@lets The key's randomart image is: +--[ECDSA 256]---+ | | | | | E | | . | | S.o o | | o*.+ = | | =* *.. | | =+ooo | | . +++o. | +-----------------+
256bitしかない。短っ!公開鍵は140文字ですぜ旦那。
$ cat ~/.id_ecdsa.pub ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGTZQ1z7sRerzq5cz6AD6nctM7AT33ENRiq8omY8afUq097FY1Z8APN0UEnVulPNJvp2Ofm0bO+DgLlvHD50oko= matsuu@lets
そんな短くて大丈夫か?
大丈夫だ問題ない、らしい。
楕円曲線暗号、RSA暗号との相対強度は従来の数千倍−富士通が解読実験 - クラウド Watch
これにより、「楕円曲線暗号がRSA暗号と比較して、従来考えられていたよりも、数千倍程度相対的に高い強度であることが考えられる」と判明。富士通研によると「従来、RSA暗号/1024ビットと楕円曲線暗号/160ビットがほぼイコールと考えられていたが、今回の成果で、楕円曲線暗号/140ビットでほぼイコールであることが判明した」のだという。
ここでいう楕円曲線暗号/140ビットがECDSA-140と同じ意味なのかは私は専門家ではないのでよくわからないが、まぁきっと大丈夫なんでしょう。
ちなみに、opensshの楕円DSAは現状256bit, 384bit, 521bitの3種類が作れるようだ。512bitではなく521bit。なんだそれ。
RFC 4754でも256, 384, 521と定義されている模様。理由はなんでしょうね。