Кіріспе
Барлық қазіргі кезде белгілі шабуылдар есептеу ресурстарымен орындау мүмкін емес, және олардың ешқайсысы толық 32 раундтық Serpent алгоритміне әсер етпейді. 2011 жылғы шабуыл 11 раундтық Serpent-ті (барлық кілт өлшемдері үшін) 2<sup>116</sup> белгілі ашық мәтін, 2<sup>107.5</sup> уақыт және 2<sup>104</sup> жад ресурстарын қолданып бұза алады (Серпент алгоритмі Росс Андерсон, Эли Бихам және Ларс Кнудсен жасаған. Басқа AES үміткерлері сияқты, Serpent-тің блок мөлшері 128 бит және кілт мөлшері 128, 192 немесе 256 бит бола алады. Алгоритм 32 биттік сөздерден тұратын блокпен жұмыс істейтін 32 раундтық алмастыру-пермутация желісі болып табылады. Әр раундта 4 биттен 4 битке дейінгі 8 S-қораптың бірі 32 рет параллель түрде қолданылады. Serpent алгоритмі барлық операциялардың 32 биттік кесінділерді пайдалана отырып, параллель орындалуын қамтамасыз етеді. Бұл параллелизмді максималды деңгейге көтереді, сонымен қатар DES алгоритміне жасалған кең криптоанализ жұмыстарын пайдалануға мүмкіндік береді. Serpent қауіпсіздікке консервативті көзқараспен қарады, үлкен қауіпсіздік маржасын таңдады: әзірлеушілер 16 раундты белгілі шабуыл түрлеріне қарсы жеткілікті деп санады, бірақ болашақта криптоанализде жаңалықтар ашылса, олардан қорғану үшін 32 раундты белгіледі. AES бәсекесі бойынша NIST-тің ресми есебі Serpent-ті MARS және Twofish сияқты жоғары қауіпсіздік маржасына ие деп санайды, ал RC6 және Rijndael (қазіргі AES) жеткілікті қауіпсіздік маржасына ие. Анықтамалық код ашық лицензиямен берілген бағдарламалық қамтамасыз ету, ал оңтайландырылған код GPL лицензиясы бойынша лицензияланады. Оны пайдалануда ешқандай шектеулер мен міндеттемелер жоқ. Осының нәтижесінде, кез келген адам лицензиялық төлемдерді талап етпей-ақ Serpent-ті өз бағдарламалық жасақтамасына (немесе аппараттық іске асыруларына) енгізуге құқылы.
Негізгі кесте
Жылан кілтінің кестесі 3 негізгі кезеңнен тұрады. Бірінші кезеңде кілт қажет болған жағдайда, төсемді қосу арқылы бастамаланады. Бұл қысқа кілттерді 256 биттік ұзын кілттерге сәйкестендіру үшін жасалады. Қысқа кілттің соңына бір "1" біті қосылып, содан кейін қысқа кілт ұзын кілттің ұзындығына дейін "0" биттер қосылады. Осының нәтижесінде Rijndael AES конкурсының жеңімпазы атанды.
"Қылан-0" мен "Қылан-1"
Serpent 0 бастапқы нұсқасы Fast Software Encryption жұмыстық семинарының 5-ші отырысында ұсынылды, бірақ біршама түзетілген Serpent 1 нұсқасы AES конкурсына жіберілді. AES үсыныс құжатында өзгерістер, соның ішінде кілтті кестелеудегі айырмашылықтар талқыланады.
Қауіпсіздік
XSL шабуылы, тиімді болған жағдайда, Серпентті әлсіретеді (бірақ ол AES болған Rijndael-ді әлсіреткендей емес). Дегенмен, көптеген криптоаналитиктер XSL шабуылы күшпен шабуылға қарағанда қымбатқа түседі деп санайды. 2000 жылы Коно және авторлар тобы Серпенттің 32 раундының 6 раундына қарсы ортада кездесетін шабуылды және Серпенттің 32 раундының 9 раундына қарсы күшейтілген бумеранг шабуылын ұсынды. 2001 жылы Эли Бихам, Орр Дункельман және Натан Келлер жасаған шабуыл сызықтық криптоанализді қолданып, 2118 белгілі ашық мәтінмен және 289 уақытпен Серпент 128-дің 32 раундының 10 раундын, ал 2118 белгілі ашық мәтінмен және 2187 уақытпен Серпент 192/256-ның 11 раундын бұзды. 2009 жылғы мақалада Серпент S-қораптарының сызықтық емес реті дизайнерлер мәлімдегендей 3 емес екені анықталды. Нақтырақ айтқанда, төрт элементтің реті 2-ге тең болды. 2011 жылы Хунцзюнь Ву, Хуасионг Ван және Фуонг Ха Нгуен жасаған шабуыл, сонымен қатар сызықтық криптоанализді пайдаланып, 2116 белгілі ашық мәтінмен, 2107.5 уақытпен және 2104 жадпен Серпент 128-дің 11 раундын бұзды. Сондай-ақ, осы мақалада Серпент 256-ның 12 раундын бұзатын екі шабуыл сипатталған. Біріншісіне 2118 белгілі мәтін, 2228.8 уақыт және 2228 жад қажет. Екінші шабуылға 2116 белгілі мәтін және 2121 жад қажет, сонымен қатар 2237.5 уақыт та керек.