<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Все в порядке.  Берете linux, толкого его настраиваете в плане
    ethernet, прогоняете сколько_вам_там_надо, видите cpu load, и
    добавляете <br>
    к этому скорость шифрования. Получаете примерно ожидаемую цифру.<br>
    <br>
    <blockquote
      cite="mid:480791D4-BC01-48FA-9AD6-2ABCCF9BDB54@gmail.com"
      type="cite">
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <div>Ребята,</div>
      <div>Посмотрите исходники:</div>
      <div><a moz-do-not-send="true"
          href="https://github.com/openssl/openssl/blob/master/apps/speed.c">https://github.com/openssl/openssl/blob/master/apps/speed.c</a></div>
      <div><br>
      </div>
      <div>openssl speed - это цикл на одних и тех же данных, т.е.
        ничего, кроме вычислительной мощности процессора он не
        показывает: данные будут в кэше L1 после первого же оборота.</div>
      <div><br>
      </div>
      <div>IPSec на шлюзе - это принять пакет, заглянуть в таблицу
        маршрутизации,  заглянуть а SPD, заглянуть в SAD, зашифровать и
        выслать. Для маленьких пакетов само шифрование занимает лишь
        малую часть процессорного времени, необходимого на обработку
        каждого пакета.</div>
      <div><br>
        <div>Андрей</div>
      </div>
      <div><br>
        On 1 Feb 2017, at 11:41, Sergey Smitienko <<a
          moz-do-not-send="true" href="mailto:hunter@comsys.com.ua">hunter@comsys.com.ua</a>>
        wrote:<br>
        <br>
      </div>
      <blockquote type="cite">
        <div><span>Привет.</span><br>
          <span></span><br>
          <span>core.i7.6700k#openssl speed -evp aes-128-cbc</span><br>
          <span></span><br>
          <span>Doing aes-128-cbc for 3s on 16 size blocks: 227357080
            aes-128-cbc's in 3.00s</span><br>
          <span>Doing aes-128-cbc for 3s on 64 size blocks: 64897721
            aes-128-cbc's in 3.00s</span><br>
          <span>Doing aes-128-cbc for 3s on 256 size blocks: 16590421
            aes-128-cbc's in 3.00s</span><br>
          <span>Doing aes-128-cbc for 3s on 1024 size blocks: 4189099
            aes-128-cbc's in 3.00s</span><br>
          <span>Doing aes-128-cbc for 3s on 8192 size blocks: 524904
            aes-128-cbc's in 3.00s</span><br>
          <span></span><br>
          <span>OpenSSL 1.0.2g  1 Mar 2016</span><br>
          <span>built on: reproducible build, date unspecified</span><br>
          <span>options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int)
            aes(partial) blowfish(idx)</span><br>
          <span>compiler: cc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC
            -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H
            -m64 -DL_ENDIAN -g -O2 -fstack-protector-strong -Wformat
            -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2
            -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack
            -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2
            -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5
            -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
            -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM
            -DGHASH_ASM -DECP_NISTZ256_ASM</span><br>
          <span>The 'numbers' are in 1000s of bytes per second
            processed.</span><br>
          <span>type             16 bytes     64 bytes    256 bytes
              1024 bytes 8192 bytes</span><br>
          <span>aes-128-cbc    1212571.09k  1384484.71k  1415715.93k
             1429879.13k 1433337.86k</span><br>
          <span></span><br>
          <span>В блоках по 64 байта (самый плохой случай -  voip) дает
            1.3 гигабайта в секунду при полной загрузки одного ядра.</span><br>
          <span>Без AES-NI</span><br>
          <span></span><br>
          <span>The 'numbers' are in 1000s of bytes per second
            processed.</span><br>
          <span>type             16 bytes     64 bytes    256 bytes
              1024 bytes 8192 bytes</span><br>
          <span>aes-128 cbc     167418.06k   182451.93k   188739.07k
              187727.19k 194005.67k - 182 мегабайта в секунду.</span><br>
          <span></span><br>
          <span>В обоих случаях это больше, чем нужно, для загрузки
            гигабитного канала.</span><br>
          <span>Скорости работы AES в openssl и в linux kernel
            практически можно считать одинаковыми.</span><br>
          <span></span><br>
          <span>А AES-256 не нужен. AES-256 на самом деле слабее, чем
            AES-128.</span><br>
          <span>"Assuming you're talking about AES 128 versus AES 256,
            there is a known weakness in the key expansion function that
            affects AES256.</span><br>
          <span>Fundamentally, the weakness reduces the complexity of
            AES256 to that lower than AES128."</span><br>
          <span><a moz-do-not-send="true"
              href="http://eprint.iacr.org/2009/374">http://eprint.iacr.org/2009/374</a></span><br>
          <span></span><br>
          <span></span><br>
          <span>> В Intel NIC гигабитках и старше есть аппаратная
            поддержка IPSec/AES,</span><br>
          <span>> которая типа дает wire speed шифрование.</span><br>
          <span>></span><br>
          <span>>> Привет,</span><br>
          <span>>></span><br>
          <span>>> есть задача - запустить сеть с шифрованием
            трафика на основе механизма</span><br>
          <span>>> GRE over IPSec/IKEv2 (GRE нужен для dynamic
            routing, IPSec - для</span><br>
          <span>>> совместимости с решениями других производителей
            - таковы</span><br>
          <span>>> требования).Если у кого есть опыт использования
            open source / x86 для</span><br>
          <span>>> подобных задач, поделитесь им, пожалуйста:</span><br>
          <span>>></span><br>
          <span>>>   * на каких программно-аппаратных
            конфигурациях какую предельную</span><br>
          <span>>>     производительность удалось получить (до
            начала потерь пакетов)?</span><br>
          <span>>>       o CPU/MB/RAM (тип, частота)</span><br>
          <span>>>       o NIC (производитель, модель)</span><br>
          <span>>>       o операционная система</span><br>
          <span>>>       o софт / библиотеки</span><br>
          <span>>>       o алгоритм и длина ключа для
            симметричного шифрования (в</span><br>
          <span>>>         реальности - интересует, конечно же,
            AES-256)</span><br>
          <span>>></span><br>
          <span>>> Спасибо!</span><br>
          <span></span><span></span></div>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>