Кіріспе
Криптографиялық примитивке кіріс Криптографияда инициализациялық вектор (IV) немесе бастапқы айнымалы – криптографиялық примитивке кіріс болып табылады, ол бастапқы күйді қамтамасыз ету үшін қолданылады. IV әдетте кездейсоқ немесе псевдокездейсоқ болуы керек, бірақ кейде IV тек болжауға болмайтын немесе бірегей болуы жеткілікті. Кездейсоқтық, кейбір шифрлау схемалары үшін семантикалық қауіпсіздікке қол жеткізу үшін өте маңызды, яғни схеманы бір кілтпен қайталап пайдаланғанда шабуылшыға шифрланған хабарламаның (мүмкін ұқсас) сегменттері арасындағы байланысты анықтауға мүмкіндік бермеу қасиеті. Блок шифрлары үшін IV-тің қолданылуы жұмыс режимдерімен сипатталады. Кейбір криптографиялық примитивтерге тек қайталанбайтын IV қажет, ал қажетті кездейсоқтық ішкі түрде туындайды. Бұл жағдайда IV көбінесе нонс (бір рет қана қолданылатын сан) деп аталады, ал примитивтер (мысалы, CBC) кездейсоқ емес, күйлі деп есептеледі. Себебі IV-ті алушыға тікелей жіберудің қажеті жоқ, бірақ оны жіберуші және қабылдаушы тарапында жаңартылған ортақ күйден алуға болады. (Іс жүзінде, хабарламаның жоғалуын ескеру үшін хабарламамен бірге қысқа нонс жіберіледі.) Күйлі шифрлау схемаларының мысалы – контр режимінің жұмыс істеу тәсілі, онда нонс үшін реттік нөмір болады. IV-тің мөлшері қолданылатын криптографиялық примитивке байланысты; блок шифрлары үшін бұл әдетте шифрдың блок мөлшерімен тең болады. Шифрлау схемаларында IV-тің болжауға болмайтын бөлігі, уақыт/жад/деректер алмасу шабуылдарын болдырмау үшін ең жақсы жағдайда кілт мөлшерімен бірдей болуы керек. IV кездейсоқ таңдалған кезде, туған күн мәселесіне байланысты соқтығысу ықтималдығы ескерілуі тиіс. RC4 сияқты дәстүрлі ағын шифрлары кіріс ретінде нақты IV-ті қолдамайды, сондықтан IV-ті шифрдың кілтіне немесе ішкі күйіне қосу үшін арнайы шешім қажет. Кейбір тәжірибеде жүзеге асырылған жобалар қауіпсіз емес деп танылды; WEP протоколы – осыған айқын мысал және байланысты IV шабуылдарына ұшырайды.
In cryptography, an initialization vector (IV) or starting variable is an input to a cryptographic primitive being used to provide the initial state. The IV is typically required to be random or pseudorandom, but sometimes an IV only needs to be unpredictable or unique. Randomization is crucial for some encryption schemes to achieve semantic security, a property whereby repeated usage of the scheme under the same key does not allow an attacker to infer relationships between (potentially similar) segments of the encrypted message. For block ciphers, the use of an IV is described by the modes of operation. Some cryptographic primitives require the IV only to be non repeating, and the required randomness is derived internally. In this case, the IV is commonly called a nonce (a number used only once), and the primitives (e. g. CBC) are considered stateful rather than randomized. This is because an IV need not be explicitly forwarded to a recipient but may be derived from a common state updated at both sender and receiver side. (In practice, a short nonce is still transmitted along with the message to consider message loss.) An example of stateful encryption schemes is the counter mode of operation, which has a sequence number for a nonce. The IV size depends on the cryptographic primitive used; for block ciphers it is generally the cipher's block size. In encryption schemes, the unpredictable part of the IV has at best the same size as the key to compensate for time/memory/data tradeoff attacks. When the IV is chosen at random, the probability of collisions due to the birthday problem must be taken into account. Traditional stream ciphers such as RC4 do not support an explicit IV as input, and a custom solution for incorporating an IV into the cipher's key or internal state is needed. Some designs realized in practice are known to be insecure; the WEP protocol is a notable example, and is prone to related IV attacks.
Мотивация
Блок шифрі – криптографиядағы ең негізгі құралдардың бірі және деректерді шифрлеу үшін жиі қолданылады. Дегенмен, ол тек алдын ала белгіленген мөлшердегі дерек блогын кодтау үшін ғана қолданылуы мүмкін, бұл блок мөлшері деп аталады. Мысалы, AES алгоритмін бір рет шақыру 128 биттік қара мәтін блогын 128 биттік шифрмәтін блогына айналдырады. Шифрге бір кіріс ретінде берілген кілт, қара мәтін мен шифрмәтін арасындағы сәйкестікті анықтайды. Егер кез келген ұзындықтағы деректерді шифрлеу қажет болса, қарапайым стратегия – деректерді шифрдің блок мөлшеріне сәйкес келетін блоктарға бөлу және әр блокты бірдей кілтті қолдана отырып жеке шифрлеу. Бұл әдіс қауіпсіз емес, себебі тең қара мәтін блоктары тең шифрмәтін блоктарына айналады, ал шифрленген деректерді бақылайтын үшінші тарап шифрлеу кілтін білмейтін жағдайда да оның мазмұнын оңай анықтай алады. Шифрленген деректердегі үлгілерді жасыру және әрбір блок шифрін шақырудан кейін жаңа кілтті қайта беруді болдырмау үшін кіріс деректерін кездейсоқ ету әдісі қажет. 1980 жылы NIST Federal Information Processing Standard (FIPS) PUB 81 деп аталатын ұлттық стандарттық құжатты жариялады, онда блок шифрінің төрт режимі сипатталған, олардың әрқайсысы кіріс блоктар жиынтығын шифрлеудің әртүрлі шешімін ұсынады. Бірінші режим жоғарыда сипатталған қарапайым стратегияны іске асырады және электрондық код кітабы (ECB) режимі ретінде белгіленген. Керісінше, қалған режимдердің әрқайсысы шифрлеудің бір блогындағы шифрмәтін келесі шифрлеу қадамындағы деректермен араласатын процесті сипаттайды. Бұл процесті бастау үшін бірінші блокпен араластырылатын қосымша кіріс мәні қажет, ол инициализациялық вектор деп аталады. Мысалы, блок шифрлеудің тізбектелуі (CBC) режимі қосымша кіріс ретінде шифрдің блок мөлшеріне тең мөлшердегі болжауға келмейтін мәнді қажет етеді. Бұл болжауға келмейтін мән келесі шифрлеуден бұрын бірінші қара мәтін блогына қосылады. Алғашқы шифрлеу қадамында алынған шифрмәтін екінші қара мәтін блогына қосылады, және т.б. Шифрлеу схемаларының басты мақсаты – семантикалық қауіпсіздікті қамтамасыз ету: бұл қасиетке сәйкес, шабуылшы үшін байқалатын шифрмәтіннен қандай да бір ақпарат алу іс жүзінде мүмкін емес. NIST-тің атап көрсеткен үш қосымша режимнің әрқайсысы таңдалған қара мәтіндік шабуылдарға қарсы семантикалық қауіпсіз екенін көрсетуге болады.
Қасиеттері
ИВ қасиеттері қолданылатын криптографиялық схемаға байланысты. Негізгі талап – бірегейлік, яғни бір кілтпен IV қайта қолданылмауы керек. Блок шифрлары үшін қайталанатын IV мәндері шифрлау схемасын электрондық код кітап режиміне дейін төмендетіп жібереді: бірдей IV және бірдей ашық мәтін бірдей шифрланған мәтінге әкеледі. Ағымдық шифрлауда бірегейлік өте маңызды, өйткені әйтпесе ашық мәтінді оңай қалпына келтіруге болады. Мысал: Ағымдық шифрлар берілген кілт пен IV-тен K кілт ағынын тудырып, C = P xor K формуласы бойынша P ашық мәтінін C шифрланған мәтініне шифрлайды. Егер шабуылшы C1 және C2 екі хабарламаның бірдей кілт пен IV арқылы шифрланғанын байқаса, онда P1 немесе P2 туралы білу екінші ашық мәтінді ашады, себебі C1 xor C2 = (P1 xor K) xor (P2 xor K) = P1 xor P2. Көптеген схемалар IV-тің қарсылас тараптан болжау мүмкін болмауын талап етеді. Бұл IV-ті кездейсоқ немесе псевдокездейсоқ түрде таңдау арқылы жүзеге асырылады. Мұндай схемаларда, IV-тің қайталану ықтималдығы ең аз болады, бірақ туған күн мәселесінің әсерін ескеру қажет. Бірегейлік талабына сәйкес, болжамды IV (ішінара) ашық мәтінді қалпына келтіруге мүмкіндік беруі мүмкін. Мысал: Алис деп аталатын заңды тарап шифрлау блоктарының тізбектеу режимін қолданып хабарламаларды шифрлейтін сценарийді қарастырайық. Сонымен қатар, Ева деп аталатын қарсылас осы шифрлауды байқап, Алисаға шифрлеу үшін ашық мәтіндік хабарламаларды жібере алады (яғни Ева таңдалған ашық мәтіндік шабуылға қабілетті). Енді Алиса IV1 инициализациялық векторынан тұратын және CAlice шифрланған мәтін блогынан басталатын хабарлама жіберді делік. PAlice – Алисаның хабарламасының бірінші ашық мәтін блогын, E – шифрлауды, ал PEve – Еваның бірінші ашық мәтін блогына жасаған болжамын білдірсін. Егер Ева келесі хабарламаның IV2 инициализациялық векторын анықтаса, ол өзінің болжамын тексеру үшін (IV2 xor IV1 xor PEve) басталатын ашық мәтіндік хабарламаны Алисаға жібере алады; егер оның болжамы дұрыс болса, бұл ашық мәтіндік блок Алиса тарапынан CAlice ретінде шифрланады. Бұл келесі қарапайым байқаудың нәтижесі: CAlice = E(IV1 xor PAlice) = E(IV2 xor (IV2 xor IV1 xor PAlice)). Криптографиялық схема үшін IV кездейсоқ немесе тек бірегей болуы керек пе, соған байланысты схема кездейсоқ немесе күйлі деп аталады. Кездейсоқ схемалар әрқашан жіберуші таңдаған IV-ті қабылдаушыларға жіберуді талап етеді, ал күйлі схемалар жіберуші мен қабылдаушыға ортақ IV күйін бөлісуге мүмкіндік береді, ол екі тараптан да алдын ала белгіленген тәртіппен жаңартылады.
C1 xor C2 = (P1 xor K) xor (P2 xor K) = P1 xor P2. Many schemes require the IV to be unpredictable by an adversary. This is effected by selecting the IV at random or pseudo randomly. In such schemes, the chance of a duplicate IV is negligible, but the effect of the birthday problem must be considered. As for the uniqueness requirement, a predictable IV may allow recovery of (partial) plaintext. Example: Consider a scenario where a legitimate party called Alice encrypts messages using the cipher block chaining mode. Consider further that there is an adversary called Eve that can observe these encryptions and is able to forward plaintext messages to Alice for encryption (in other words, Eve is capable of a chosen plaintext attack). Now assume that Alice has sent a message consisting of an initialization vector IV1 and starting with a ciphertext block CAlice. Let further PAlice denote the first plaintext block of Alice's message, let E denote encryption, and let PEve be Eve's guess for the first plaintext block. Now, if Eve can determine the initialization vector IV2 of the next message she will be able to test her guess by forwarding a plaintext message to Alice starting with (IV2 xor IV1 xor PEve); if her guess was correct this plaintext block will get encrypted to CAlice by Alice. This is because of the following simple observation:
CAlice = E(IV1 xor PAlice) = E(IV2 xor (IV2 xor IV1 xor PAlice)). Depending on whether the IV for a cryptographic scheme must be random or only unique the scheme is either called randomized or stateful. While randomized schemes always require the IV chosen by a sender to be forwarded to receivers, stateful schemes allow sender and receiver to share a common IV state, which is updated in a predefined way at both sides.
Блок шифрлары
Деректерді блок шифрімен өңдеу әдетте жұмыс режимі ретінде сипатталады. Режимдер негізінен шифрлау және аутентификация үшін анықталады, бірақ екі қауіпсіздік шешімін де біріктіретін, аутентификацияланған шифрлау режимдері деп аталатын жаңа дизайн да бар. Шифрлау және аутентификацияланған шифрлау режимдері әдетте шифрдің блок өлшемімен сәйкес келетін IV қабылдаса, аутентификация режимдері детерминистік алгоритмдер ретінде іске асырылады, ал IV нөлге немесе басқа да белгілі бір тұрақты мәнге орнатылады.
Ағын шифрлау
Ағымдық шифрларда, бастапқылау векторы (IV) шифрдың кілттелген ішкі құпия күйіне жүктеледі, содан кейін шығыстың алғашқы биті шығарылмас бұрын бірнеше шифрлау айналымдары орындалады. Өнімділікті арттыру үшін ағымдық шифрларды құрастырушылар осы айналымдар санын мүмкіндігінше төмен ұстауға тырысады, бірақ ағымдық шифрлар үшін қауіпсіз айналымдардың минималды санын анықтау оңай емес, және әр шифр құрылысына тән энтропия жоғалту сияқты, сондай-ақ байланысты IV-тер мен басқа IV-ке байланысты шабуылдарды ескере отырып, IV-тер ағымдық шифрлар үшін белгілі қауіпсіздік мәселесі болып табылады, бұл ағымдық шифрларда IV жүктеуді маңызды мәселе етіп, оны үздіксіз зерттеулер тақырыбына айналдырады.
WEP IV
WEP (Wired Equivalent Privacy) деп аталатын 802.11 шифрлау алгоритмі қысқа, 24 биттік IV пайдаланды, осының салдарынан бір кілтпен бірнеше IV қайта қолданылып, оны бұзу оңай болды. Түйір салу арқылы WEP бірнеше секундтың ішінде бұзылуы мүмкін болды. Нәтижесінде WEP қолданыстан тоқтатылды.
SSL 2.0 IV
Шифрлау блоктарының тізбегі режимінде (CBC режимінде) IV құпия болуы міндетті емес, бірақ ол болжауға болмайтын болуы керек (әсіресе, кез келген ашық мәтін үшін, IV жасалғанға дейін осы ашық мәтінмен байланысты IV-ті болжау мүмкін болмауы тиіс). Шифрлау уақытында. Сонымен қатар, шығыс кері байланыс режимінде (OFB режимінде) IV бірегей болуы керек. Атап айтқанда, хабарламаның соңғы шифрланған мәтін блогын келесі хабарлама үшін IV ретінде қайта пайдаланудың бұрынғы кең таралған практикасы қауіпсіз емес (мысалы, бұл әдіс SSL 2.0 қолданған). Егер шабуылшы келесі ашық мәтінді белгілемес бұрын IV-ті (немесе шифрланған мәтіннің алдыңғы блогын) білсе, ол бұрын бірдей кілтпен шифрланған блоктардың ашық мәтіні туралы болжамын тексеруі мүмкін. Бұл TLS CBC IV шабуылы деп аталады, сондай-ақ BEAST шабуылы деп те аталады.