From owner-FreeBSD-users-jp@jp.FreeBSD.org Sun Jan 13 12:38:44 2013
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id r0D3ciY96648;
	Sun, 13 Jan 2013 12:38:44 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from kawasaki3.org (blackpearl.kawasaki3.org [173.230.157.78])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id r0D3chh96643
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Sun, 13 Jan 2013 12:38:44 +0900 (JST)
	(envelope-from moto@kawasaki3.org)
Received: from localhost (s253.HtokyoFL10.vectant.ne.jp [222.228.92.253])
	(Authenticated sender: moto)
	by kawasaki3.org (Postfix) with ESMTPSA id 394051CD40
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Sat, 12 Jan 2013 22:38:42 -0500 (EST)
Message-Id: <20130113.123832.11250106783530135.moto@kawasaki3.org>
To: FreeBSD-users-jp@jp.FreeBSD.org
From: moto kawasaki <moto@kawasaki3.org>
X-Face: )._4~w!_D$r6qNS0+;nS|]WNeI4f3o)QnH[ItB[esXuc$~hQ$.,?}$SnLe/[24Hao%^q/Is
 'SJtZe#21h;7z;q+iyj[^%7\46.Gg-t7.px<}L-f_:P+6i4-a{DIL[
X-Mailer: Mew version 6.5 on Emacs 24.2.50 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Sun, 13 Jan 2013 12:38:32 +0900
X-Sequence: FreeBSD-users-jp 94097
Subject: [FreeBSD-users-jp 94097] AES-NI and openssl
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: moto@kawasaki3.org
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+060209


$B@n:j$H?=$7$^$9!#$h$m$7$/$*4j$$$7$^$9!#(B

$B!t(B FreeBSD $B$H$$$&$h$j$b(B openssl $B$NOCBj$J$N$+$b$7$l$^$;$s$,!"$I$3$G?R$M(B
$B!t(B $B$k$N$,$h$$$+$h$/$o$+$i$J$$$N$G$3$A$i$G!#(B
$B!t(B $BITE,@Z$J$i$P;XE&!&M6F3$h$m$7$/$*4j$$$7$^$9!#(B

$BC;$/8@$&$H!"(B
    AES-NI $BF~$j$N(B CPU $B$r;H$C$F$$$k$N$@$1$l$I!"(Bopenssl speed $B$GB,$k$H8z(B
    $B2L$,=P$F$$$J$$$h$&$K;W$&!#$I$&$9$l$P$h$$$G$7$g$&$+!)(B
$B$H$$$&<ALd$G$9!#(B

$B0J2<!"D9$/$J$j$^$9$,$*5v$72<$5$$!#(B

$B$7$P$i$/A0$+$i(B CPU $B$K(B AES-NI $B5!G=$,F~$C$F$$$k>l9g$,$"$C$F!"(BAES $B4XO"$N(B
$B7W;;$r%O!<%I%&%'%"$KG$$;$F%9%T!<%I%"%C%W$,$G$-$k$h$&$K$J$j$^$7$?!#(B
$B<j85$N4D6-$O!"(BHP DL360G7 (Xeon E5606) $B$K(B XenServer 5.6SP2 $B$rF~$l$F!"(B
guest $B$H$7$F(B FreeBSD 9.1-RELEASE amd64 (XENHVM) $B$rF0$+$7$F$$$^$9!#(B

FreeBSD $B$N>l9g$O!"(Bdmesg $B$G8+$F(B CPU Fearture $B$K(B AESNI $B$,$"$l$P(B CPU $B$,(B
AES-NI $B$r%5%]!<%H$7$F$$$k$3$H$,$o$+$j$^$9$,!"0J2<$N$h$&$K$3$l$O8+$($F(B
$B$$$^$9!#(B

    FreeBSD 9.1-RELEASE #2: Sat Jan  5 17:45:00 JST 2013
	root@nfsstore3.oka.lac.jp:/usr/obj/usr/src/sys/OKAXENHVM amd64
    CPU: Intel(R) Xeon(R) CPU           E5606  @ 2.13GHz (2133.48-MHz K8-class CPU)
      Origin = "GenuineIntel"  Id = 0x206c2  Family = 6  Model = 2c  Stepping = 2
      Features=0x781fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CM
    OV,PAT,MMX,FXSR,SSE,SSE2>
      Features2=0x82982201<SSE3,SSSE3,CX16,SSE4.1,SSE4.2,POPCNT,AESNI,HV>
      AMD Features=0x20000800<SYSCALL,LM>                       $B",$3$3(B
      AMD Features2=0x1<LAHF>
    real memory  = 532676608 (508 MB)
    avail memory = 494837760 (471 MB)
	 :


kernel $B@_Dj(B (XENHVM $BGI@8(B) $B$K0J2<$rDI5-$9$k$3$H$G!"(B

    device crypto
    device cryptodev
    device aesni

aesni0 $B%G%P%$%9$,@8$($^$9$N$G!"$3$l$G(B kernel $B$O(B AES-NI $B$rG'<1$7$F$$$k(B
$B$H;W$C$F$$$^$9!#(B

    $ dmesg | grep aesni
    aesni0: <AES-CBC,AES-XTS> on motherboard

$B$D$$$G$J$,$i!"(Bman aesni(4) $B$K(B device cryptodev $B$X$N8@5Z$,$J$$$N$G$9$,!"(B
$B$3$N%G%P%$%9$O:G6aDI2C$5$l$?$s$G$7$g$&$+!#(B


$B$3$3$G!"(Bopenssl $B$+$i(B AES-NI $B$,$I$N$h$&$K8+$($k$+$G$9$,!"(BOS $BF1:-$N(B
openssl $B$H(B ports $B$+$iF~$l$?$b$N$G$O>/$7F0$-$,0[$J$j$^$9!#(B

$B$^$:!"(BOS $BF1:-$N(B openssl $B$G$O!"(Bceyptodev $B$N@h$K(B AES-128-CBC $B$,8+$($^$9!#(B

    $ /usr/bin/openssl version
    OpenSSL 0.9.8x 10 May 2012
    $ /usr/bin/openssl engine -c -t
    (cryptodev) BSD cryptodev engine
     [RSA, DSA, DH, AES-128-CBC]
	 [ available ]
    (dynamic) Dynamic engine loading support
	 [ unavailable ]

ports (security/openssl) $BM3Mh$N$b$N$G$O!"(Bcryptodev $B$N@h$K(B AES-{128,
192,256}-CBC $B$,8+$($k$h$&$K$J$j$^$9!#(B

    $ /usr/local/bin/openssl version
    OpenSSL 1.0.1c 10 May 2012
    $ /usr/local/bin/openssl engine -c -t
    (cryptodev) BSD cryptodev engine
     [RSA, DSA, DH, AES-128-CBC, AES-192-CBC, AES-256-CBC]
	 [ available ]
    (rsax) RSAX engine support
     [RSA]
	 [ available ]
    (dynamic) Dynamic engine loading support
	 [ unavailable ]


openssl speed $B$GB,$C$F$_$k$H!"0J2<$N$h$&$K$J$j$^$9!#(B(rc4 $B$O$*$^$1$G$9(B)

  [OS $BF1:-HG!&%(%s%8%s;XDj$J$7(B]
  $ /usr/bin/openssl speed rc4 aes-128-cbc aes-256-cbc
      (snip)
  The 'numbers' are in 1000s of bytes per second processed.
  type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
  rc4             282949.07k   302508.50k   311531.06k   318883.16k   321583.23k
  aes-128 cbc     107224.70k   111720.63k   112391.61k   113100.76k   113218.06k
  aes-256 cbc      84375.26k    87150.40k    88121.16k    88252.18k    88418.67k

  [OS $BF1:-HG!&%(%s%8%s;XDj$"$j(B]
  $ /usr/bin/openssl speed -engine cryptodev rc4 aes-128-cbc aes-256-cbc
  engine "cryptodev" set.
  The 'numbers' are in 1000s of bytes per second processed.
  type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
  rc4             283840.98k   304521.07k   313117.93k   320178.30k   322188.00k
  aes-128 cbc     107998.38k   111429.63k   112933.16k   113206.31k   113262.48k
  aes-256 cbc      84902.19k    86670.40k    88272.19k    88480.89k    88477.45k

  [ports $BHG!&%(%s%8%s;XDj$J$7(B]
  $ /usr/local/bin/openssl speed rc4 aes-256-cbc
  The 'numbers' are in 1000s of bytes per second processed.
  type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
  rc4             185130.15k   347134.81k   443680.08k   483377.54k   499326.44k
  aes-256 cbc      45177.52k    47553.47k    48481.83k   100685.08k   101643.78k

  [ports $BHG!&%(%s%8%s;XDj$"$j(B]
  $ /usr/local/bin/openssl speed -engine cryptodev rc4 aes-256-cbc 
  engine "cryptodev" set.
  The 'numbers' are in 1000s of bytes per second processed.
  type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
  rc4             184666.22k   344115.15k   444006.31k   483542.31k   497616.04k
  aes-256 cbc      45205.07k    47608.24k    48409.88k   100731.73k   101916.14k


$B7k6I$N$H$3$m!"(Baes-256-cbc$B$G$O$*$h$=(B100MByte/sec$BDxEY$G!"(Bcryptodev$B$rL@<((B
$BE*$K;XDj$7$F$bBg:9$,$J$$$h$&$G$9!#(B
(OS $BF1:-HG$G$O<c43Mn$A$^$9$,!"$3$l$O(B engine $B$K(B -256- $B$,$J$$$?$a$+!#(B)


$B$3$&$$$&$b$N$J$i$=$l$O$=$l$GG<F@$9$k$7$+$J$$$N$G$9$,!"0JA0!"(Bports $BHG$,(B
$B$^$@(B 1.0.0 $B$K$J$kA0(B (0.9.8 $BEv;~(B) $B$K(B AES-NI $B%Q%C%A$rEv$F$F7WB,$7$?;~$K(B
$B$O!"(BAES-NI engine $B;XDj$J$7$G$*$h$=(B 100MByte/sec $BDxEY!";XDj$9$l$P$*$h$=(B
500 MByte/sec $B=P$F$$$?$h$&$K5-21$7$^$9$N$G!"(BAES-NI $B%O!<%I%&%'%"$r;H$((B
$B$F$$$J$$$N$G$O$J$$$+$H;W$C$F$$$^$9!#(B
$B$=$&$$$($P!"(B0.9.8 $BEv;~$O(B cryptodev $B7PM3$G$O$J$/$F!"(Bopenssl $B$+$i8+$FD>(B
$B@\$K(B aesni $B%(%s%8%s$,@8$($F$$$?$N$b5$$K$J$j$^$9!#(B(openssl 1.0.0 $B$K$J$C(B
$B$F(B AES-NI $B$r%5%]!<%H$9$k$h$&$K$J$C$?;~$K<BAu$,JQ$o$C$?$H$$$&$3$H$G$9$h(B
$B$M(B)

$B$9$_$^$;$s$,!"2?$+%R%s%H$,$"$l$P$h$m$7$/$*4j$$$7$^$9!#(B

-- 
moto kawasaki <moto@kawasaki3.org>

