Кіріспе

Ағыс шифрі Grain – 2004 жылы Мартин Хелл, Томас Йоханссон және Вилли Майер eSTREAM-ге ұсынған ағыс шифрі. Ол eSTREAM жобасының 2-профиліне арналған eSTREAM портфелінің соңғы құрамына іріктелді. Grain негізінен шектеулі аппараттық орта үшін жасалған. Ол 80 биттік кілт және 64 биттік бастамалық векторды (IV) қабылдайды. (Кілт, IV) жұбы үшін ең көп шығыс ұзындығына қатысты ешқандай ұсыным берілмейді. Шифрдегі бірнеше әлсіз тұс анықталып, түзетілді. Grain 128a нұсқасы қазір 128 биттік қауіпсіздік және аутентификацияны қамтамасыз ететін аппараттық ортада қолдануға ұсынылатын шифр болып табылады.

Сипаттама

Grain-нің 160 биттік ішкі күйі 80 биттік сызықтық кері байланыс тізбектік тіркегіштен (LFSR) және 80 биттік сызықтық емес кері байланыс тізбектік тіркегіштен (NLFSR) тұрады. Grain сызықтық емес сүзгі функциясы шығарған шифрмәтіннің әрбір биті үшін LFSR және NLFSR күйінің бір битін жаңартады. 80 биттік NLFSR сызықтық емес 5-ке-1 Буль функциясымен және LFSR-ден таңдалған 1 биттік сызықтық кіріспен жаңартылады. Сызықтық емес 5-ке-1 функциясы NLFSR күйінің 5 битін кіріс ретінде қабылдайды. 80 биттік LFSR 6-қа-1 сызықтық функциямен жаңартылады. Кілттеу операциялары кезінде шифрдың шығысы қосымша түрде NLFSR және LFSR жаңарту функцияларына сызықтық кіріс ретінде беріледі. Grain-нің бастапқы Grain Version 0.0 нұсқасында 80 биттік NLFSR-дің бір биті және 80 биттік LFSR-дің төрт биті сызықтық емес 5-ке-1 Буль функциясына беріледі (ол теңгерімді, бірінші реттік корреляцияға қарсы және алгебралық дәрежесі 3 болып таңдалады) және шығыс сызықтық түрде 80 биттік NLFSR-дің 1 битімен біріктіріліп, шығыс ретінде шығарылады. Grain-нің жаңартылған 1.0 нұсқасында 80 биттік NLFSR-дің бір биті және 80 биттік LFSR-дің төрт биті (сәл өңделген) сызықтық емес 5-ке-1 Буль функциясына беріледі және шығыс сызықтық түрде 80 биттік NLFSR-дің 7 битімен біріктіріліп, шығыс ретінде шығарылады. Шифрлауды бастау үшін 80 биттік кілт тікелей 80 биттік NLFSR-ге жүктеледі, ал 64 биттік IV LFSR-дің төменгі 64 битіне жүктеледі, ал LFSR-дің қалған 16 биті бірліктермен толтырылады. Шифр 160 раундқа дейін «мөрленеді», онда 160 биттік кілттік тізбек LFSR және NLFSR жаңарту функцияларына сызықтық түрде кері беріледі. Шифр бастамалау процесінде кілттік тізбек шығысын шығармайды. Grain авторлары Grain инициализациялау процесінің толық таралу жылдамдықтарын Grain Version 1.0 спецификациясында талқылайды: «Екі түрлі IV-мен инициализациялау үшін, тек бір битпен ғана ерекшеленетін, екі инициализация үшін тізбектік тіркегіш битінің бірдей болу ықтималдығы 0,5-ке жақын болуы керек. Модельдеулер бұл 160 циклдан кейін орындалатынын көрсетеді».

Өнер көрсету

Шифр 16 раундқа дейін параллель түрде орындалуына мүмкіндік береді, бұл аппараттық ресурстарды көбірек пайдалану есебінен жылдамдатылған іске асыруға жол ашады.

Қауіпсіздік

Кілттің мөлшері 80 бит, ал IV мөлшері 64 бит болады. Авторлар шифр толық кілтті іздеуден жылдам шабуылға ұшырамайтындай етіп жасалғанын мәлімдейді, сондықтан ең жақсы шабуыл есептеу күрделілігі 280-ден төмен болмауы керек. Grain нұсқасы 0.0-дің бастапқы спецификациясында авторлар: «Grain аппараттық қолданбаларда қолдануға арналған басқа белгілі шифрларға қарағанда жоғары қауіпсіздікпен қамтамасыз етеді. Мұндай шифрлардың белгілі мысалдары – Bluetooth-та қолданылатын E0 және GSM-де қолданылатын A5/1. Бұл шифрлар, сонымен қатар өте кішкентай аппараттық іске асырылуымен, өте қауіпсіз емес екені дәлелденді. E0 және A5/1-мен салыстырғанда, Grain жоғары қауіпсіздікпен қамтамасыз етеді, сонымен бірге шағын аппараттық күрделілікті сақтайды». Авторлар E0-ға қарсы шабуыл 240 және 235 фрейм күрделілігін талап ететінін келтіреді (фреймнің ұзындығы 2745 бит). Grain нұсқасы 0.0-дің бастапқы шифры кілтті қалпына келтіру шабуылымен бұзылды, бұл 80 биттік кілтті анықтау үшін 243 есептеу және 238 кілт ағыны биті қажет болды. Жаңартылған Grain нұсқасы 1.0 спецификациясында шифрдың сәл өзгертілген шығыс функциясы бар және NLFSR кері байланыс функциясы шағын өзгеріске ұшырады. Спецификацияда: «Фильтр функциясы өте кішкентай, тек 5 айнымалы және сызықтық емес 12. Алайда, бұл жағдай NLFSR-дан алынған деректердің бірімен ішінара өтеледі. NLFSR-ден кіріс биті LFSR-ден де, NLFSR-ден де басқа биттерге байланысты болады. Кішкентай сүзгі функциясы NLFSR-ден 7 битті шығару функциясы үшін қолайлы орындарда қосу арқылы өтеледі». 2006 жылдың қазан айына дейін Grain нұсқасы 1.0-қа қарсы күшпен шабуылдан артық кілтті қалпына келтіру шабуылдары белгілі емес. Алайда, 2006 жылдың қыркүйек айында Озгул Кучук «Slide Resynchronization Attack on the Initialization of Grain 1.0» атты мақаласында осыған байланысты шабуылды жариялады. Мақалада: «Біз Grain 1.0 ағын шифрының байланысты кілттері мен бастапқы мәндерін таптық. Кез келген (K,IV) жұп үшін 1 бит ығыстырылған кілт ағынын жасайтын 1/22 ықтималдығы бар (K’,IV’) жұптар бар. Бұл әлі кілтті қалпына келтіру шабуылына әкелмейді, бірақ бастапқыда аз күш-жігер жұмсау арқылы жеңілуі мүмкін әлсіздікті көрсетеді».