Հոսքի ծածկագիր ընդդեմ բլոկ ծածկագրի | State Cipher vs Block Cipher
Գաղտնագրության մեջ Stream ciphers-ը և Block ciphers-ը երկու կոդավորման/գաղտնագրման ալգորիթմներ են, որոնք պատկանում են սիմետրիկ հիմնական ծածկագրերի ընտանիքին: Սովորաբար գաղտնագիրը որպես մուտք է վերցնում պարզ տեքստ և որպես ելք արտադրում է գաղտնագրված տեքստ: Բլոկ ծածկագրերը կոդավորում են ֆիքսված երկարությամբ բիթերի բլոկը՝ օգտագործելով անփոփոխ փոխակերպում: Հոսքային ծածկագրերը կոդավորում են տարբեր երկարությամբ բիթերի հոսքերը և օգտագործում են տարբեր փոխակերպումներ յուրաքանչյուր բիթում:
Ի՞նչ է Stream ծածկագիրը:
Հոսքի ծածկագրերը պատկանում են սիմետրիկ հիմնական ծածկագրերի ընտանիքին: Հոսքային ծածկագրերը համատեղում են պարզ տեքստի բիթերը կեղծ պատահական գաղտնագրման բիթերի հոսքի հետ՝ օգտագործելով XOR (բացառիկ-կամ) գործողության:Հոսքի ծածկագրերը կոդավորում են պարզ տեքստային թվանշանները մեկ առ մեկ՝ հաջորդական թվանշանների համար տարբեր փոխակերպումներով: Քանի որ յուրաքանչյուր թվանշանի կոդավորումը կախված է գաղտնագրման շարժիչի ներկայիս վիճակից, հոսքային ծածկագրերը հայտնի են նաև որպես վիճակի ծածկագրեր: Սովորաբար, միայնակ բիթերը/խայթոցները օգտագործվում են որպես միանիշ թվեր: Անվտանգության հետ կապված մտահոգություններից խուսափելու համար պետք է համոզվել, որ նույն մեկնարկային վիճակը չի օգտագործվում մեկից ավելի անգամ: Առավել լայնորեն օգտագործվող հոսքային ծածկագիրը RC4-ն է։
Ի՞նչ է բլոկային ծածկագիրը:
Բլոկային ծածկագիրը ևս մեկ սիմետրիկ բանալի ծածկագիր է: Բլոկների ծածկագրերը գործում են ֆիքսված երկարությամբ բլոկների (բիթերի խմբերի) վրա: Բլոկի ծածկագրերն օգտագործում են ֆիքսված (անփոփոխ) փոխակերպում բլոկի բոլոր թվանշանների համար: Օրինակ, երբ x-bit բլոկի պարզ տեքստը (գաղտնի բանալիի հետ միասին) տրամադրվում է որպես մուտքագրում բլոկային ծածկագրման շարժիչին, այն արտադրում է համապատասխան գաղտնագրման x-bit բլոկը: Փաստացի փոխակերպումը կախված է գաղտնի բանալիից: Նմանապես, գաղտնազերծման ալգորիթմը վերականգնում է պարզ տեքստի սկզբնական x-bit բլոկը, օգտագործելով ծածկագրված տեքստի x-bit բլոկը և վերը նշված գաղտնի բանալին որպես մուտքագրում:Այն դեպքում, երբ մուտքագրված հաղորդագրությունը չափազանց երկար է՝ համեմատած բլոկի չափի հետ, այն կբաժանվի բլոկների և այդ բլոկները (առանձին-առանձին) կգաղտնագրվեն՝ օգտագործելով նույն բանալիը: Այնուամենայնիվ, քանի որ նույն բանալին օգտագործվում է, պարզ տեքստի յուրաքանչյուր կրկնվող հաջորդականությունը դառնում է նույն կրկնվող հաջորդականությունը գաղտնագրման տեքստում, և դա կարող է անվտանգության հետ կապված մտահոգություններ առաջացնել: Հանրաճանաչ բլոկային ծածկագրերն են DES (Տվյալների գաղտնագրման ստանդարտ) և AES (Ընդլայնված կոդավորման ստանդարտ):
Ի՞նչ տարբերություն կա հոսքային ծածկագրի և բլոկ ծածկագրի միջև:
Չնայած հոսքային ծածկագրերը և բլոկային ծածկագրերը պատկանում են սիմետրիկ գաղտնագրման ծածկագրերի ընտանիքին, կան որոշ հիմնական տարբերություններ: Արգելափակման ծածկագրերը գաղտնագրում են բիթերի ֆիքսված երկարության բլոկները, մինչդեռ հոսքային ծածկագրերը համատեղում են պարզ տեքստի բիթերը կեղծ պատահական ծածկագրման բիթերի հոսքի հետ՝ օգտագործելով XOR գործողությունը: Թեև բլոկային ծածկագրերն օգտագործում են նույն փոխակերպումը, հոսքային ծածկագրերն օգտագործում են տարբեր փոխակերպումներ՝ կախված շարժիչի վիճակից: Հոսքի ծածկագրերը սովորաբար ավելի արագ են աշխատում, քան բլոկային ծածկագրերը:Սարքավորումների բարդության առումով հոսքային ծածկագրերը համեմատաբար ավելի քիչ բարդ են: Հոսքի ծածկագրերը բնորոշ նախապատվությունն են բլոկային ծածկագրերի նկատմամբ, երբ պարզ տեքստը հասանելի է տարբեր քանակությամբ (օրինակ՝ անվտանգ Wi-Fi կապ), քանի որ բլոկային ծածկագրերը չեն կարող ուղղակիորեն գործել բլոկի չափից ավելի կարճ բլոկների վրա: Բայց երբեմն հոսքային ծածկագրերի և բլոկային ծածկագրերի միջև տարբերությունը այնքան էլ պարզ չէ: Պատճառն այն է, որ որոշակի գործողության ռեժիմներ օգտագործելիս բլոկային ծածկագիրը կարող է օգտագործվել որպես հոսքային ծածկագիր՝ թույլ տալով նրան գաղտնագրել հասանելի տվյալների ամենափոքր միավորը: