Du profiloj estas mezuritaj sur la sama kluzo, unu kun ĉifrado kaj unu sen, kaj la ĉifrita ne estas pli malrapida. Iufoje ĝi estas pli rapida, kio kutime kaŭzas longan diskuton pri tio, ĉu la testo estis farita ĝuste. La rezulto estas kredinda, ĉar la kosto de paketo ne estas la nombro de kriptografiaj vortoj en la agordo. Ĝi estas la aro de operacioj, kiujn la efektivigo plenumas, sur la aparataro, kiun ĝi havas, laŭ la bufara aranĝo, kiun ĝi elektis.

La simptomo: la malrapida ne estas la ĉifrita profilo

Supozu, ke historia testo komparas AEAD-ĉifron kun reĝimo „sen ĉifrado“, kiu ankoraŭ kalkulas apartan aŭtentigan kodon po paketo. La dua profilo kaŝas la enhavon de la utila ŝarĝo sed konservas haŝon po paketo, kaj sur procesoro sen akcelo por tiu haŝo ĝi povas kosti pli ol la integra konstruo, kiun ĝi devis venki.

La etikedo en la agordo diras „ĉifrado“, kaj la etikedo estas ĉio, kion rigardas la plej multaj komparoj. La paka vojo diras ion alian: unu profilo plenumas komunan operacion, por kiu la CPU havas instrukciojn, kaj la alia apartan, por kiu ĝi ne havas. Legi nur la agordan dosieron neniam malkaŝos tiun diferencon, ĉar ambaŭ enskriboj aspektas kiel unu linio. Nur la intertraktita reĝimo kaj la koda vojo malantaŭ ĝi klarigas la rezulton.

Tio estas la tuta klarigo, kaj ĝi postulas neniun aserton pri tio, kiu primitivo estas universale pli rapida. Ambaŭ povas esti rapidaj, ambaŭ povas esti malrapidaj, kaj la ordo dependas de la maŝino kaj la kodo.

Kalkulu operaciojn, ne etikedojn

AEAD-konstruo, kiel priskribite en RFC 5116, donas al la efektivigo ununuran interfacon, kiu redonas ĉifrotekston kaj etikedon kune. AES-GCM estas unu ekzemplo: ŝaltila-reĝima ĉifrado kombinita kun Galois-aŭtentigilo. La interfaco ne faras integrecon senkosta; ĝi faras la kombinon bone difinita, kaj tio estas kio ebligas al efektivigo optimumigi la paron kiel unuon.

Separate authentication path:
  payload -> independent HMAC -> framed packet

AEAD path:
  payload -> authenticated encryption with tag -> framed packet

Tiuj estas prilaboraj skizoj, ne agordaj konsiloj. La unua havas neniun konfidencon sed tamen elspezas CPU por aŭtentigo, kaj ĝuste tial „malŝalti ĉifradon“ ne estas sinonimo de „malŝalti kriptografian laboron“.

La dua povas esti pli malmultekosta, ĉar procesoroj provizas instrukciojn por ambaŭ duonoj: AES-rundaĵoj kaj la port-ne-hava multipliko, kiun uzas la Galois-kampo. Bibliotekoj ankaŭ prilaboras sendependajn bufrojn paralele, kio tenas tiujn instrukciojn okupataj anstataŭ atendi la memoron.

Kion la intertraktita reĝimo fakte ebligas

Ĉe Community OpenVPN, AEAD-datuma ĉifro signifas, ke la opcio auth ne plu kontribuas propran apartan HMAC de la datuma kanalo. La referenco pri la ĉifrada opcio priskribas tiun amplekson, kaj tio estas la kialo, ke du agordoj, kiuj aspektas similaj en tekstdosiero, povas diferenci en laboro po paketo.

Legu la intertraktitan reĝimon anstataŭ la deziroliston. Listo de permesitaj ĉifroj kaj nomo de TLS-suito ne diras al vi, kiuj operacioj kuras sur la ŝarĝo, kaj malnova linio cipher eble ne priskribas, kion elektis la nuna konekto.

openvpn --show-ciphers | head -20
sudo grep -E 'cipher|auth' /etc/openvpn/server.conf

La unua komando listigas la ĉifrojn, kiujn la dunoma dosiero subtenas, kio estas kapabla listo, ne la intertraktita rezulto. La dua montras, kion la servilo fakte petas. La konekta protokolo estas la loko por konfirmi la finan elekton, ĉar kliento povas fali al io, kion la servilo permesas sed neniu intencis.

Mezuru la laborŝarĝon, kiun vi fakte plenumas

Kriptografia mikro-mezuro mezuras primitivon sub ĝiaj propraj kondiĉoj. VPN-transigo ankaŭ kopias bufrojn, planas fadenojn aŭ interrompojn, kontrolas politikon kaj transiras la reton. Tiuj partoj ofte dominas, kaj tial pli rapida primitivo ne ĉiam produktas pli rapidan tunelon.

openssl speed -evp aes-256-gcm
openssl speed -evp sha1

Tiuj du komandoj donas al vi malglatan lokan komparon de la primitivoj sur la maŝino antaŭ vi, kaj ili estas honestaj, ke temas pri mikro-mezuroj. Ili diras nenion pri la trairokapablo de via tunelo, kaj ili neniam devus esti citataj kiel tia.

Poste mezuru la laborŝarĝon, kiu gravas, tenante ĉion alian konstanta: sama finpunkto, samaj pakaĵgrandoj, sama transporto, sama kunpremada politiko. Se la profila ŝanĝo ankaŭ ŝanĝis la transporton aŭ la prilaboran lokon, la rezulto priskribas tiun pakaĵon, ne la kriptografion.

Tenu ankaŭ la celon en la vidkampo. Datuma vojo kun libera kriptografia kapacito ankoraŭ povas esti limigita de latento, ĉar la aplikaĵo atendas rondajn vojaĝojn, kaj gajnoj en amasa kapacito ne riparas babilan protokolon. Mezuru la subtenatan kaj politike aprobitan agordon kiel tuton, kaj traktu „malpli da skatoloj devas esti pli rapidaj“ kiel la hipotezon, kiu ĝi estas. La utila demando ne estas, ĉu ĉifrado kostas ion, sed ĉu la kosto aperas en la mezurado, pri kiu vi vere zorgas.

Rilataj artikoloj