Կամելիա (ալգորիթմ)

Անվան այլ կիրառումների համար տե՛ս՝ Կամելիա (այլ կիրառումներ)Կամելիան (անգլ.՝ Camellia, ճապ.՝ カメリア) 128֊բիթանի սիմետրիկ բանալիով գաղտնագրման ալգորիթմ է, ծրագրավորված համատեղ Միցուբիշիի և Ճապոնիայի «Նիպոն հեռագիր և հեռախոս» ընկերության (անգլ.՝ Nippon Telegraph and Telephone) կողմից։ Ալգորիթմը որակավորված է ISO/IEC֊ի, Եվրոպական Միության NESSIE նախագծի և Ճապոնական CRYPTREC նախագծի կողմից։ Ալգորիթմն ունի անվտանգության և գործունեության ունակությաններ համեմատելի AES֊ի հետ (անգլ.՝ Advanced Encryption Standard):
Կամելիայի բլոկի չափը 16 բայթ է (128 բիթ), և կարող է օգտագործել 128, 192 կամ 256֊բիթանոց բանալի։ Այս բլոկային գաղտնագրման ալգորիթմն նախագծված է այնպես, որ լինի կիրառելի և՛ ծրագրայնապես, և՛ տեխնիկապես, էժան սմարթ քարդերից մինչև գերարագ ցանցային համակարգեր։


== Նախագիծ ==
Կամելիան Ֆայստելյան ցանցով գաղտնագրման ալգորիթմ է կա՛մ 18 շրջապտույտով (128֊բիթանոց բանալու դեպքում), կա՛մ 24 շրջապտույտով (192 կամ 256֊բիթանոց բանալու դեպքում)։ Ամեն վեցերորդ շրջապտույտին տրամաբանական ձևափոխության շերտն է կիրառվում, այսպես կոչված «FL֊ֆունկցիան» կամ դրա հակադարձը։ Կամելիան օգտագործում է ներածման ու արտածման նմանության ձևափոխոխությունների (անգլ.՝ affine transformations, ռուս.՝ аффинное преобразование) չորս 8 x 8֊բիթանոց S-box֊եր և տրամաբանական գործողություններ։ Այն նույնպես օգտագործում է մուտքի և ելքի key whitening։ Կրիպտոգրաֆիկական դիֆուզիայի շերտը օգտագործում է Մատրիցի վրա հիմնված գծային ձևափոխումներ։


== Անվտանգության վերլուծություն ==
Կամելիան բլոկային գաղտնագրիչ է, որն ամբողջովին հնարավոր է արտահայտել բազմափոփոխական համեմատությունների չառանչվող համակարգերով։

Կամելիայի (ինչպես նաև AES֊ի) S-box֊երը հնարվոր է ներկայացնել 80 համեմատությունների մեջ 23 քառակուսային հավասարումների մի համակարգի տեսքով։
Ենթաբանալիների ստեղծման ալգորիթմը (անգլ.՝ key schedule) հնարավոր է ներկայացնել 768 փոփոխականների մեջ 1120 հավասարումներով օգտագործելով 3328 գծային և քառակուսային համեմատություններ։
Ամբողջ բլոկային գաղտնագրիչը հնարավոր է ներկայացնել 2816 փոփոխականներում 5104 հավասարումներով օգտագործելով 14592 գծային և քառակուսային համեմատություններ։
Հանրագումարում պահանջվում է 6224 հավասարումներ 3584 փոփոխականերում օգտագործելով 17920 գծային և քառակուսային համեմատություններ։
Չորոշված փոփոխականների թվաքանակը լինում է 11696, որը մոտովոր նույնն է ինչ AES֊ի դեպքում։Թեորիապես այսպիսի տեխնիկական տվյալները հնարավոր են դարձնում ապագայում Կամելիայի (և AES֊ի) ապակոդավորումը օգտագործելով հանրահաշվական հարձակումներից այնպիսին ինչպիսին է XSL֊ը։ Ներկայիս տեխնիկական միջոցներով նման հարձակումը կտևի տարիներ։


== Արտոնագրի կարգավիճակ ==
Չնայած նրան, որ Կամելիան արտոնագրված է, այն հնարավոր է օգտագործել առանց հեղինակին տուրք վճարելու։ Այս կարգավիճակը (անգլ.՝ royalty-free license) թույլ տվեց նրան 2006 թվականի նայեմբերից դառնալու OpenSSL նախագծի մասը բաց ելակետային կոդով ԾԱ֊ի արտոնագրով (անգլ.՝ open-source license): Դա նույնպես թույլ է տվել դառնալու Մոզիլայի NSS մոդուլի մասը (անգլ.՝ Network Security Services):


== Յուրացումներ ==
Կամելիայի աջակցումն ավելացվել է Մոզիլա Ֆայրֆոքս 3֊ի վերջին թողարկման մեջ 2008 թվականին։
Ավելի ուշ այդ տարի, FreeBSD֊ի թողարկումների ինժեներական թիմը հայտարարեց, որ գաղտնագրող ալգորիթմն ընդգրկվել է FreeBSD 6.4 թողարկման մեջ։ Նաև Կամելիայի աջակցումն ավելցվել էր FreeBSD֊ի սկավառակի գաղտնագրման հիշողության կլասի geli֊ին Յոշիսատո Յանագիսավայի կողմից։
2009 թվականի սեպտեմբերին GNU Privacy Guard֊ը տարբերակ 1.4.10֊ում ավելացրեց Կամելիայի աջակցումը։
Բացի այդ, տարբեր հայտնի անվտանգության փաթեթներ, ինչպիսիք են Crypto++֊ը, GnuTLS֊ը, PolarSSL֊ը և OpenSSL֊ը, նայնպես ընդգրկում են Կամելիան։
2013 թվականի մարտի 26֊ին վերընդգրկվել էր Ճապոնիայի էլ֊Կառավարության խորհուրդ տրվող գաղտնագրման ալգորիթմների նոր ցուցակում որպես միակ 128֊բիթային բլոկային գաղտնագրիչ։ Սա զուգադիպել է CRYPTREC֊ի ցուցակի 10 տարին մեկ թարմացվելու հետ։ Ընտրությունը կատարվել է հիմնվելով Կամելիայի հեշտ ձեռք բերման, անվտանգության և արագագործության բարձր հեղինակության համար, որոնք մրցունակ են AES֊ի հետ։ Կամելիան դեռ մնում է անապակոդավորելի իր ամբողջական կիրառմամբ։ Անհնարին դիֆերենցիալ հարձակումը 12 շրջապտույտանի առանց FL/FL−1 շերտերի Կամելիայի վրա գոյություն չունի։


== Ստանդարտացում ==
Կամելիան որակավորվել է որպես ստանդարտ գաղտնագրման ալգորիթմ տարբեր ստանդարտացման կազմակերպությաւնների կողմից։

CRYPTREC
NESSIE
IETF
Ալգորիթմ/Աշխատելակերպ
RFC 3713։ A Description of the Camellia Encryption Algorithm
RFC 5528։ Camellia Counter Mode and Camellia Counter with CBC-MAC Mode Algorithms
S/MIME
RFC 3657։ Use of the Camellia Encryption Algorithm in Cryptographic Message Syntax (CMS)
XML Encryption
RFC 4051։ Additional XML Security Uniform Resource Identifiers (URIs)
TLS/SSL
RFC 4132։ Addition of Camellia Cipher Suites to Transport Layer Security (TLS)
RFC 5932։ Camellia Cipher Suites for TLS
RFC 6367։ Addition of the Camellia Cipher Suites to Transport Layer Security (TLS)
IPsec
RFC 4312։ The Camellia Cipher Algorithm and Its Use With IPsec
RFC 5529։ Modes of Operation for Camellia for Use with IPsec
OpenPGP
RFC 5581։ The Camellia Cipher in OpenPGP
RSA-KEM «Cryptographic Message Syntax֊ի» մեջ
RFC 5990։ Use of the RSA-KEM Key Transport Algorithm in the Cryptographic Message Syntax (CMS)
Portable Symmetric Key Container (PSKC)
RFC 6030։ Portable Symmetric Key Container (PSKC)
Smart Grid
RFC 6272։ Internet Protocols for the Smart Grid
ISO/IEC
ISO/IEC 18033-3:2010 Information technology—Security techniques—Encryption algorithms—Part 3։ Block ciphers
ITU-T
security mechanisms and procedures for Next-generation network (Y.2704)
RSA Լաբորատորիաներ
հաստատված գաղտնագրիչ PKCS#11֊ում
«TV-Anytime» ֆորում
approved cipher in TV-Anytime Rights Management and Protection Information for Broadcast Applications
approved cipher in Bi-directional Metadata Delivery Protection


== Ծանոթագրություններ ==


=== Ընդհանուր ===
Xin-jie ZHAO, Tao WANG, Yuan-yuan ZHENG (2009)։ «Cache Timing Attacks on Camellia Block Cipher»։ IACR։ էջեր 1–18։ Վերցված է 2013-01-14 Xin-jie ZHAO, Tao WANG (2009)։ «An Improved Differential Fault Attack on Camellia»։ IACR։ էջեր 1–18։ Վերցված է 2013-01-14 Xin-jie ZHAO, Tao WANG (2010)։ «Further Improved Differential Fault Attacks on Camellia by Exploring Fault Width and Depth»։ IACR։ էջեր 1–16։ Վերցված է 2013-01-14 


== Արտաքին հղումներ ==
Կամելիայի անգլերեն էջը Nippon Telegraph and Telephone֊ի կայքում
256bit Ciphers - CAMELLIA Reference implementation and derived code
RFC 3657 Use of the Camellia Encryption Algorithm in Cryptographic Message Syntax (CMS)
RFC 3713 A Description of the Camellia Encryption Algorithm
RFC 4051 Additional XML Security Uniform Resource Identifiers (URIs)
RFC 4132 Addition of Camellia Cipher Suites to Transport Layer Security (TLS)
RFC 4312 The Camellia Cipher Algorithm and Its Use With IPsec
RFC 5528 Camellia Counter Mode and Camellia Counter with CBC-MAC Mode Algorithms
RFC 5529 Modes of Operation for Camellia for Use with IPsec
RFC 5581 Certification of Camellia Cipher as IETF standard for OpenPGP
RFC 5932 Camellia Cipher Suites for TLS
RFC 5990 Use of the RSA-KEM Key Transport Algorithm in the Cryptographic Message Syntax (CMS)
RFC 6030 Portable Symmetric Key Container (PSKC)
RFC 6272 Internet Protocols for the Smart Grid
RFC 6367 Addition of the Camellia Cipher Suites to Transport Layer Security (TLS)
ISO/IEC 18033-3:2010 Information technology—Security techniques—Encryption algorithms—Part 3։ Block ciphers