= Žodis angliškai: = Quantum computer resistant cryptography == Santrumpa: == QCR cryptography === Žodis lietuviškai: === Kvantiniams kompiuteriams atspari kriptografija === Apibrėžimas: === Atsirandant kvantiniams kompiuteriams, jie gali būti panaudoti duomenų iššifravimui labai didele sparta, kadangi kvantiniai kompiuteriai gali atlikti labai dideli kiekį operacijų per turimą laiko vienetą. Šitaip kodų nulaužimas, kuris būtų trukęs kelis metus gali būti nulaužiamas mėnesių ar dienų bėgyje. Tai sudaro didelę saugumo problemą, kurią reikėtų spręsti ieškant kodavimo būdų atsparių kvantiniams kompiuteriams. Kvantiniai kompiuteriai gali nesunkiai ir greitai įveikti kodavimą pasiremiantį pirminių skaičių sandauga. Taip pat nesunkiai išbandyti visus trumpo rakto variantus. Stipriausias kvantinio kompiuterio ginklas- Shoro algoritmas. Norint sukurti kvantiniams kompiuteriams neįveikiamą kodavimą, manoma, kad reikėtų naudoti kitokius kodavimo principus/ == Galimi kodavimo principai: == ==== Gardelių pagrindo kriptografija ==== Ši kriptografija naudojai gardelių pagrindo kriptografijos primityvais. Tai yra stiprų periodiškumą turinčių taškų visumą Euklido erdvėje. Kodo sudarymui naudojamos matematinės problemos: trumpiausio vektoriaus radimas gardelėje, artimiausio vektoriaus gardelėje radimas. Taip pat naudojama mokymosi su klaidomis sistema bei jos variantai. Visoms šioms problemoms nebuvo rasta lengvų spendimo būdų. ==== Daugiamatė kriptografija ==== Šiuo atveju naudojami nesimetriški kriptografijos primityvai su daugiamačių polinomų pagrindu. Šifravimui naudojamos sistemos: vaivorykštės. Tokio pagrindo algoritmai dar nebuvo pritaikyti naudojimui, tačiau jie būtų sunkiai nulaužiami kvantiniais kompiuteriais. ==== Hash pagrindo kriptografija ==== Šis kodavimas yra paremtas vienpusio matematinio algoritmo naudojimu. Naudojant šį algoritmą yra ribotas kiekis hash kodų, kurie gali būti nulaužiami ir saugomi bibliotekose, tačiau naudojant pakankamai ilgą hash, tokių bibliotekų sudarymas ir laikymas gali tapti nepraktiškas. ==== Kodo pagrindo kriptografija ==== Įgyvendinti šiai kriptografijai naudojamas klaidų taisymo algoritmas galintis ištaisyti tam tikrą kiekį klaidų tiesiniame kode. Norint naudoti tokį algoritmą prieš kvantinius kompiuterius, reikėtų ženkliai padidinti rakto ilgį. Jis galėtų siekti apie 512 Kb, todėl ši kriptografija nėra labai populiari. ==== Simetrinio rakto kriptografija ==== Tai yra kriptografija, kuri naudoja tą patį raktą atviro teksto šifravimui ir dešifravimui. Net ir dabar naudojant pakankamai didelį rakto ilgį ši kriptografija gali būti neįveikiama kvantiniams kompiuteriams. Taip pat ši kriptografija yra labai paplitusi todėl galėtų būti nesunkiai patobulinta į kvantiniams kompiuteriams saugią kriptografiją. == CISCO rekomenduojami kodavimo algoritmai: == === AES-CBC rėžimu === Šiuo atveju naudojant šifravimo blokų grandinės sudėtingo šifravimo standartą pirmieji turimi duomenys yra koduojami panaudojant XOR loginę operaciją su pradiniu vektoriumi, kuris turi būti visiškai atsitiktinis, ir sandaugą su kodavimo raktu. Tolimesni duomenys koduojami atliekant XOR operaciją tarp pirmųjų duomenų bei antrųjų bei sudauginant iš kodavimo rakto. CISCO rekomenduoja 256 bitų rakto ilgį, norint apsisaugoti nuo kvantinių kompiuterių. Šifravimas: {{attachment:2.png}} Dešifravimas: {{attachment:3.png}} === AES-GCM rėžimu === Galois/Counter Mode yra saugus ir konfidencialus šifravimo būdas naudojantis simetriško rakto 128 bitų blokų šifravimą. Taip pat šis kodas gali būti naudojamas žinučių patvirtinimo rėžimu. Šiuo atveju norint šifruoti duomenis, duomenų blokai yra sužymimi iš eilės kaip ir CBC kodavime, tada šis bloko numeris yra užšifruojamam rezultatui atliekama XOR operacija su paprastu tekstu ir gaunamas šifruotas tekstas, kuriam toliau atliekama XOR operacija su autentifikacijos kodo dalimi. Šifravimas: {{attachment:4.png}} === SHA-384 ir SHA-512 === SHA- secure hash algorithm, naudojamas failų autentiškumui patikrinti. Dažniausiai tikrinama iš anksto žinomos/suskaičiuotos hash vertė su ką tik gauta hash verte. Tai leidžia sužinoti ar failas buvo pakeistas, nes net ir mažiausias pakeitimas kode, visiškai pakeis hash vertę. Taip pat tai dažnai naudojama slaptažodžiams saugoti, kadangi galima sakyti, kad nėra dviejų vienodų reikšmių, kurios sugeneruotų tą patį hash kodą, taip pat tai yra tik vienpusė operacija. Nepaisant to, trumpi tekstai bei trumpi hash kodai gali būti nulaužiami naudojant iš anksto sudarytas bibliotekas todėl CISCO rekomenduoja SHA-384 bei SHA-512 koduotes. Jos geresnės nes naudoja 64 bitų žodžius. Šiuo atveju skaičiai 384 ir 512 nurodo funkcijos išeigos plotį bitais, atitinkamai 384 bei 512. Taip pat lyginant su 32 bitų SHA kodavimu maksimalus žinutės ilgis išsiplečia nuo 2^64 bitų iki 2^128 bitų bei hash sudaryti naudojami 80, o ne 64 operacijų raundai. Hash sudaryti naudojamos operacijos: loginė suma, loginė sandauga, išskirtinis arba, sukimas be pernašos, modulio pridėjimą, dešinį loginį poslinkį. Neskaitant to, kad hash skaičiavimas pasudėtingėjo, jo skaičiavimas 64 bitų procesoriuose pagreitėjo. === MAC-SHA-256 === HMAC yra žinučių autentifikavimo kodas panaudojantis raktą. Iš pavadinimo matyti, kad jis remiasi SHA-256 kodavimo algoritmu, tačiau prie žinutės taip pat prisegamas užkoduotas raktas. Tai yra nesimetriškas raktas, jį sudaro vieša ir privati rakto dalys, taigi norint patvirtinti žinutę, reikia gauti tą pačią vertę su privačiu raktu kaip ir ir buvo sugeneruota su viešu raktu. Šiuo atveju kitaip nei praeitame kodavime svarbiau yra ne hash vertės gavimas ar jos gavimo nulaužimas, bet rakto saugumas todėl raktas turi būti pakankamai ilgas, norint apsaugoti žinutę ar išlaikyti autentiškumą. Šifravimas: {{attachment:6.png}} ==== Literatūra: ==== 1. CISCO rekomendacijos [žiūrėta 2016-11-03] Prieiga internete http://www.cisco.com/c/en/us/about/security-center/next-generation-cryptography.html 2. Daniel J. Bernstein. Post quantum cryptography. Sprinter. 2009. 243 psl. [žiūrėta 2016-11-03] Prieiga internete [[https://books.google.lt/books?id=VB598lO47NAC&pg=PA15&dq=quantum+resistant+cryptography&hl=lt&sa=X&ved=0ahUKEwiX9IqwmY3QAhWNJSwKHV4sAgcQ6AEIKTAA#v=onepage&q=quantum%20resistant%20cryptography&f=false|https://books.google.lt/books?id=VB598lO47NAC&pg=PA15&dq=quantum+resistant+cryptography&hl=lt&sa=X&ved=0ahUKEwiX9IqwmY3QAhWNJSwKHV4sAgcQ6AEIKTAA#v=onepage&q=quantum%20resistant%20cryptography&f=false]] 3. Dworkin, Morris (2007–2011). Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC. NIST. 800-38D. [žiūrėta 2016-11-03] Prieiga internete http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf 4. Descriptions of SHA-256, SHA-384, and SHA-512. [žiūrėta 2016-11-03] Prieiga internete https://web.archive.org/web/20130526224224/http://csrc.nist.gov/groups/STM/cavp/documents/shs/sha256-384-512.pdf