[ruby-list:50428] Re: [質問] Blowfishの鍵について
From:
松永 肇一 <ma2@...>
Date:
2016-10-13 03:51:58 UTC
List:
ruby-list #50428
Kazuki Yamaguchi=E3=81=95=E3=82=93=E3=80=81=E3=81=93=E3=82=93=E3=81=AB=E3=
=81=A1=E3=81=AF=E3=80=82
> =E3=81=A9=E3=81=AE=E3=83=A9=E3=82=A4=E3=83=96=E3=83=A9=E3=83=AA=E3=81=A7=
=E3=81=97=E3=82=87=E3=81=86=E3=81=8B=E3=80=82OpenSSL=EF=BC=88libcrypto=EF=
=BC=89=E3=81=A0=E3=81=A8=E3=81=99=E3=82=8B=E3=81=A8=E3=80=81BF_set_key()
> =E3=82=82=E5=90=8C=E6=A7=98=E3=81=AB=E7=9B=B4=E6=8E=A5=E6=9A=97=E5=8F=B7=
=E9=8D=B5=E3=82=92=E8=A8=AD=E5=AE=9A=E3=81=99=E3=82=8B=E3=82=82=E3=81=AE=E3=
=81=A7=E3=81=99=E3=80=82=E3=81=A7=E3=81=99=E3=81=8B=E3=82=89=E3=80=81
>=20
> BF_KEY key;
> BF_set_key(&key, 8, "\0\1\2\3\4\5\6\7");
>=20
> =E3=81=AB=E7=9B=B8=E5=BD=93=E3=81=99=E3=82=8B=E3=82=82=E3=81=AE=E3=81=AF=
=E3=80=81OpenSSL::Cipher =E3=81=A7=E6=9B=B8=E3=81=8D=E7=9B=B4=E3=81=99=E3=
=81=A8=E3=80=81
>=20
> cipher =3D OpenSSL::Cipher.new("bf-<=E3=81=AA=E3=81=AB=E3=81=8B>").=
encrypt
> cipher.key_len =3D 8
> cipher.key =3D "\0\1\2\3\4\5\6\7"
>=20
> =E3=81=A8=E3=81=AA=E3=82=8A=E3=81=BE=E3=81=99=E3=80=82
=E3=83=A9=E3=82=A4=E3=83=96=E3=83=A9=E3=83=AA=E3=81=AFopenssl=E3=81=A7=E3=
=81=97=E3=81=9F=E3=80=82
=E3=81=AA=E3=82=8B=E3=81=BB=E3=81=A9=E3=80=81=E5=90=8C=E3=81=98=E6=96=87=E5=
=AD=97=E5=88=97=E3=82=92=E6=B8=A1=E3=81=9B=E3=82=8B=E3=81=AE=E3=81=A7=E3=81=
=99=E3=81=AD=E3=80=82
> =E3=83=91=E3=82=B9=E3=83=AF=E3=83=BC=E3=83=89=E3=81=8B=E3=82=89=E6=9A=97=
=E5=8F=B7=E9=8D=B5=E3=82=92=E5=B0=8E=E5=87=BA=E3=81=99=E3=82=8B=E6=96=B9=E6=
=B3=95=E3=81=AF=E3=81=84=E3=81=8F=E3=81=A4=E3=81=8B=E3=81=82=E3=82=8A=E3=81=
=BE=E3=81=99=E3=81=8C=E3=80=81Ruby =E3=81=AE=E6=A8=99=E6=BA=96=E3=83=A9=E3=
=82=A4
> =E3=83=96=E3=83=A9=E3=83=AA=E3=81=AE=E4=B8=AD=E3=81=A7=E3=81=AF PBKDF2(=
+HMAC) =E3=81=8C=E4=BD=BF=E3=81=88=E3=81=BE=E3=81=99=E3=80=82
>=20
> salt =3D OpenSSL::Random.random_bytes(16)
> key_iv =3D OpenSSL::PKCS5.pbkdf2_hmac(pass, salt, 100_000, cipher.k=
ey_len + cipher.iv_len, "sha256")
> cipher.key =3D key_iv[0, cipher.key_len]
> cipher.iv =3D key_iv[cipher.key_len, cipher.iv_len]
=E3=81=9F=E3=81=84=E3=81=B8=E3=82=93=E5=8F=82=E8=80=83=E3=81=AB=E3=81=AA=E3=
=82=8A=E3=81=BE=E3=81=99=E3=80=82
=E3=81=82=E3=82=8A=E3=81=8C=E3=81=A8=E3=81=86=E3=81=94=E3=81=96=E3=81=84=E3=
=81=BE=E3=81=97=E3=81=9F=E3=80=82
--=20
=E6=A0=AA=E5=BC=8F=E4=BC=9A=E7=A4=BE=E3=83=A9=E3=82=A4=E3=83=95=E3=83=A1=E3=
=83=87=E3=82=A3=E3=82=A2=E3=80=80=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0=E9=96=
=8B=E7=99=BA=E9=83=A8
=E6=9D=BE=E6=B0=B8=E8=82=87=E4=B8=80