Що се отнася до киберсигурността, AES е една от тези съкращения, които виждате да изскачат навсякъде. Това е така, защото се превърна в глобалния стандарт на криптиране и се използва, за да запази значителна част от нашите комуникации.
Разширеният стандарт за шифроване (AES) е бърза и сигурна форма на криптиране, която държи любопитни очи далеч от нашите данни. Виждаме го в приложения за съобщения като WhatsApp и сигнал, програми като VeraCrypt и WinZip, в гама от хардуер и различни други технологии, които използваме през цялото време.
Защо е разработен AES?
Най-ранните типове шифроване бяха прости, използвайки техники като промяна на всяка буква в изречение на тази, която идва след нея в азбуката. Под този вид код предишното изречение става:
Както можете да видите, този прост код го прави напълно нечетлив. Въпреки първоначалната нечетливост, ако имахте време и знаехте, че това е код, а не просто куп знаци, изписани на страницата, не би било твърде трудно в крайна сметка да разберете.
Тъй като хората станаха по-добри в кракинг кодове, криптирането трябваше да стане по-сложно така че съобщения могат да бъдат пазена в тайна. Тази надпревара с оръжия за измисляне на все повече и по-сложни методи, докато други изливат усилията си за разбиването им, води до все по-сложни техники, като машината Enigma, изобретена от германците през Първата световна война.
Възходът на електронната комуникация също е основание за криптиране. През 70-те години на миналия век Национално бюро за стандарти на САЩ (NBS) започнаха да търсят стандартни средства, които биха могли да се използват за криптиране на чувствителна правителствена информация. Резултатът от търсенето им беше да се приеме симетричен ключов алгоритъм, разработен в IBM, който сега се нарича Стандарт за шифроване на данни (DES). DES следваше своето предназначение сравнително добре през следващите няколко десетилетия, но през деветдесетте години някои проблеми за сигурността започнаха да се появяват.
DES има само a 56-битов ключ (в сравнение с максимум 256 бита в AES, но ще стигнем до това по-късно), така че технологиите и методите за пробиване се подобриха, атаките срещу нея започнаха да стават все по-практични. Първото кодирано съобщение на DES, което се отваря, беше през 1997 г. от проекта DESCHALL в Състезанието, спонсорирано от RSA Security.
На следващата година Фондацията за електронни граници (EFF) изгради крекер на DES, който можеше да направи груба сила ключ за малко повече от два дни. През 1999 г. EFF и първият колективен компютър в интернет, distributed.net, съдействаха, за да намалят това време до под 24 часа.
Въпреки че тези атаки бяха скъпи и непрактични за монтиране, те започнаха да показват, че царуването на DES като стандарт за криптиране на Go-to е към своя край. С изчислителна мощност експоненциално се увеличава Според Законът на Мур, беше само въпрос на време, докато DES вече не можеше да се разчита.
Правителството на САЩ се отправи към петгодишна мисия за оценка на различни методи за криптиране, за да намери нов стандарт, който би бил сигурен. Най- Национален институт за стандарти и технологии (NIST) обяви, че най-накрая направи своя избор в края на 2001 г..
Изборът им беше специфичен подмножество на блоковия шифър Rijndael, с фиксиран размер на блока от 128 бита и размери на ключовете 128, 192 и 256 бита. Той е разработен от Джоан Деймън и Винсент Риймен, два криптографи от Белгия. През май 2002 г. AES беше одобрено да стане Американски федерален стандарт и бързо се превърна в стандартен алгоритъм за криптиране и за останалия свят.
Свързани: Ръководство за начинаещи за криптография
Защо беше избран този шифър за AES?
При всякакъв вид криптиране винаги има компромиси. Лесно бихте могли да имате стандарт, който е експоненциално по-сигурен от AES, но това ще отнеме твърде много време за криптиране и дешифриране, за да бъде практически полезно. В крайна сметка Блок-шифърът Rijndael беше избран от NIST за неговите всестранни способности, включително неговата производителност както на хардуер, така и на софтуер, лекота на изпълнение и нивото на сигурност.
Как работи AES?
Имайте предвид, че следващият пример е опростяване, но ви дава обща представа за това как работи AES. За съжаление, в света няма достатъчно кафе, за да накара повечето хора да искат да преминат през по-сложните аспекти на AES. Обикновено процесът се изпълнява в двоичен код и има много повече математика.
Първо, данните са разделени на блокове.
При този метод на криптиране, първото нещо, което се случва е, че вашият просто текст (който е информацията, която искате да бъде криптиран) е разделен на блокове. Размерът на блока на AES е 128 бита, така че той разделя данните в колона четири по четири от шестнадесет байта (има осем бита в байт и 16 x 8 = 128).
Ако вашето съобщение беше „купете ми картофи, моля, първият блок изглежда така:
б | m | о | р |
ф | д | m | о |
ш | д | T | |
с | а |
Ще пропуснем останалото съобщение за този пример и просто ще се съсредоточим върху това, което се случва с първия блок, докато е криптиран. Обикновено „… към чипове, моля“ просто се добавя към следващия блок.
Разширяване на ключовете
Разширението на ключовете включва вземане на първоначалния ключ и използването му, за да излезе с редица други клавиши за всеки кръг от процеса на криптиране. Тези нови 128-битови кръгли клавиши са изведени с ключовия график на Rijndael, което по същество е прост и бърз начин за създаване на нови ключови шифри. Ако първоначалният ключ беше „клавишите са скучни1“:
к | аз | ||
д | а | б | н |
ш | R | о | г |
с | д | R | 1 |
Тогава всеки от новите клавиши може да изглежда така, след като бъде използван ключовият график на Rijndael:
14 | 29 | 1 час | S5 |
h9 | 9е | во | 9е |
GT | 2h | HQ | 73 |
к | DJ | ге | полупансион |
Въпреки че изглеждат като случайни знаци (и горният пример е току-що съставен), всеки от тези ключове се извлича от структуриран процес, когато AES криптирането действително се прилага. Ще се върнем към това, което тези кръгли клавиши се използват за по-късно.
Добавете кръгъл ключ
В тази стъпка, тъй като това е първи кръг, първоначалният ни ключ се добавя към блока на нашето съобщение:
б | m | о | р |
ф | д | m | о |
ш | д | T | |
с | а |
+
к | аз | ||
д | а | б | н |
ш | R | о | г |
с | д | R | 1 |
Това става с XOR шифър, който е алгоритъм за криптиране на добавките. Въпреки че изглежда, че всъщност не можете да добавите тези неща заедно, имайте предвид, че всъщност се прави в двоичен вид. Героите са просто готовност, за да опитате и да направите нещата по-лесни за разбиране. Нека да кажем, че тази математическа операция ни дава резултат от:
h3 | JD | цу | 7s |
S8 | 7г | 26 | 2n |
DJ | 4Ь | 9г | 9в |
74 | ел | 2h | Hg |
Заменете байтове
В този етап всеки байт се замества в съответствие с предварително определена таблица. Това е нещо като примера от началото на статията, където изречението е кодирано чрез промяна на всяка буква в тази, която идва след нея в азбуката (Здравейте става ifmmp).
Тази система е малко по-сложна и не е задължително да има логика към нея. Вместо това има утвърдена таблица, която може да бъде потърсена от алгоритъма, която казва например това h3 става JB, S8 става 9е, DJ става 62 и така нататък. След тази стъпка нека да кажем, че предварително определената таблица ни дава:
JB | n3 | KF | n2 |
9е | JJ | 1 час | JS |
74 | WH | 0d | 18 |
HS | 17 | d6 | пиксела |
Преместете редове
Shift редове е пряко име и тази стъпка е по същество това, което бихте очаквали. Вторият ред се премества с едно пространство вляво, третият ред се премества две интервали вляво, а четвъртият ред се премества три интервала вляво. Това ни дава:
JB | n3 | KF | n2 |
JJ | 1 час | JS | 9е |
0d | 18 | 74 | WH |
пиксела | HS | 17 | d6 |
Смесете колони
Тази стъпка е малко сложна за обяснение. За да изрежете по-голямата част от математиката и да опростите нещата, нека просто кажем, че всяка колона има математическо уравнение, приложено към нея, за да я разпространи допълнително. Нека да кажем, че операцията ни дава този резултат:
LS | J4 | 2n | мама |
83 | 28 | ке | 9е |
деветw | XM | 3л | m4 |
5б | A9 | CJ | к.с. |
Добавяне на кръгъл ключ (отново)
Спомняте ли си онези кръгли клавиши, които направихме в началото, използвайки първоначалния си ключ и разписанието на ключовете на Rijndael? Е, тук започваме да ги използваме. Вземаме резултата от нашите смесени колони и добавяме първия кръг ключ, който получихме:
LS | J4 | 2n | мама |
83 | 28 | ке | 9е |
деветw | XM | 3л | m4 |
5б | A9 | CJ | к.с. |
+
14 | 29 | 1 час | S5 |
h9 | 9е | во | 9е |
GT | 2h | HQ | 73 |
к | DJ | ге | полупансион |
Нека да кажем, че тази операция ни дава следния резултат:
9г | 5б | 28 | SF |
LS | ге | HF | 3б |
9 т | 28 | к.с. | 8е |
62 | 7г | 15 | ах |
Много повече кръгове …
Ако си мислите, че това е, ние дори не сме близо. След добавяне на последния кръг ключ се връща към етапа на подмяна на байта, където всяка стойност се променя в съответствие с предварително определена таблица. След като това е направено, се връща обратно към преместване на редове и преместване на всеки ред отляво по едно, две или три интервала. След това отново преминава през уравнението на колоните за смесване. След това се добавя още един кръгъл ключ.
И там не спира. В началото беше споменато това AES има ключови размери от 128, 192 или 256 бита. Когато се използва 128-битов ключ, има девет от тези кръгове. Когато се използва 192-битов ключ, има 11. Когато се използва 256-битов ключ, има 13. Така че данните минават през подмяната на байта, редовете на смени, смесите колони и стъпките на кръгли клавиши до тринадесет пъти всеки, да се променя на всеки етап.
След тези девет, 11 или 13 кръга има един допълнителен кръг, в който данните се обработват само от заместване на байта, изместване на редове и добавяне на кръгли ключови стъпки, но не стъпката за смесване на колони. Стъпката на смесените колони се изважда, тъй като на този етап тя просто ще изяде обработващата мощност, без да променя данните, което би направило метода на криптиране по-малко ефективен.
За да стане нещата по-ясни, целият процес на AES криптиране върви:
Разширяване на ключовете
Добавете кръгъл ключ
Замяна на байтове
Преместете редове
Смесете колони
Добавете кръгъл ключ
x 9, 11 или 13 пъти, в зависимост от това дали ключът е 128, 192 или 256-битов
Замяна на байтове
Преместете редове
Добавете кръгъл ключ
След като данните преминат през този сложен процес, вашият оригинал „Купете ми малко картофен чипс“ излиза да изглежда нещо като „Ok23b8a0i3j 293uivnfqf98vs87a“. Изглежда като напълно случаен низ от знаци, но както можете да видите от тези примери, всъщност е резултат от много и различни математически операции, прилагани към него отново и отново.
Какъв е смисълът от всяка от тези стъпки?
Много неща се случват, когато нашите данни са криптирани и е важно да разберем защо. ключ разширяването е от решаващо значение стъпка, защото тя ни дава нашите ключове за по-късните кръгове. В противен случай, във всеки рунд ще бъде добавен един и същ ключ, което ще направи AES по-лесен за напукване. В първия кръг се добавя началният ключ, за да се започне промяната на обикновения текст.
Най- стъпка за заместване на байтове, където всяка от точките на данни се променя в съответствие с предварително определена таблица, също играе съществена роля. Той променя данните по нелинеен начин, за да приложи объркване към информацията. Объркването е процес, който помага да се скрие връзката между криптираните данни и оригиналното съобщение.
Редът за смяна също е критичен, извършване на това, което е известно като дифузия. В криптографията дифузията по същество означава да се транспонират данните, за да се добави усложнение. Чрез преместване на редовете данните се преместват от първоначалното си положение, което допълнително спомага за затъмняването им. Смесете колони действа по подобен начин, променяйки данните вертикално, а не хоризонтално.
В края на кръга се добавя нов кръгъл ключ, който е извлечен от първоначалния ключ. Това добавя по-голямо объркване към данните.
Защо има толкова много кръгове?
Процесите на добавяне на кръгли клавиши, заместване на байтове, изместване на редовете и смесване на колони променя данните, но те все още могат да бъдат пропукани чрез криптоанализа, което е начин за изучаване на криптографския алгоритъм, за да се разруши.
Атаки с пряк път са един от ключови заплахи. Това са атаки, които могат да пробият криптирането с по-малко усилия от грубото насилване. Когато се проектираше AES, бяха открити атаки за пряк път до шест кръга от процеса му. Поради това бяха добавени допълнителни четири кръга за минимум от 128-битов AES като марж на сигурност. Получените 10 кръга дават на метода за криптиране достатъчно място за крака, за да се предотвратят атаки за пряк достъп по съвременните техники и технологии.
Защо не добавим още кръгове, за да увеличим сигурността?
С повечето неща в сигурността трябва да има a компромис между чиста отбранителна сила, използваемост и производителност. Ако поставите десет стоманени врати със стоманени болтове на всяка от входните точки на вашата къща, това със сигурност ще я направи по-сигурна. Освен това ще отнеме необосновано време, за да влезете и излезете, поради което никога не виждаме някой да го прави.
Това е същото, когато става дума за криптиране. Бихме могли да го направим по-сигурен, като добавим повече рундове, но той също би бил по-бавен и много по-малко ефективен. 10, 12 и 14 кръга на AES са уредени, тъй като осигуряват добър компромис между тези конкурентни аспекти, поне в съвременния технологичен пейзаж.
Дешифриране на AES
Ако сте успели да накарате главата си да обясни процеса на криптиране по-горе, декриптирането е сравнително просто. За да преминете от шифротекста обратно към очевидния текст на оригиналното съобщение, всичко се прави обратно.
Ако започнем с нашия криптиран резултат от „Ok23b8a0i3j 293uivnfqf98vs87a“ и приложете обратната страна на всеки етап на криптиране, тя започва с обратния кръгъл ключ, след това обратното изместване на редовете и обратното заместване на байта, преди да преминете в обратната част на 9, 11 или 13 кръга. Изглежда така:
„Ok23b8a0i3j 293uivnfqf98vs87a“
Обратно добавете кръгъл ключ
Редове на обратното изместване
Обратно заместване на байта
Обратно добавете кръгъл ключ
Обратни микс колони
Редове на обратното изместване
Обратно заместване на байта
x 9, 11 или 13 пъти, в зависимост от това дали ключът е 128,192 или 256-битов
Обратно добавете кръгъл ключ
След този процес на дешифриране отново завършваме с първоначалното си съобщение: „Купете ми малко картофен чипс“
128 срещу 192 срещу 256-битов AES
AES има три различни дължини на клавишите. Основната разлика е броят кръгове, през които данните преминават в процеса на криптиране, съответно 10, 12 и 14. По същество, 192-битов и 256-битов предоставете a по-голям марж на сигурност от 128-битово.
В съвременния технологичен пейзаж, 128-битов AES е достатъчно за повечето практически цели. Високо чувствителни данни, обработвани от тези с изключително ниво на заплаха, като например ТОП СЕКРЕТНИ документи контролирана от военните, вероятно трябва да бъде обработена с която и да е 192 или 256-битов AES.
Ако сте параноик, може би предпочитате да използвате 192 или 256-битов криптиране, когато е възможно. Това е добре, ако ви улеснява да спите през нощта, но наистина не е необходимо в повечето ситуации. Не е без разходите и с допълнителните четири кръга от 256-битово криптиране което го прави около 40 процента по-малко ефективен.
Проблеми със сигурността на AES
Криптографите постоянно пробват AES за слабости, опитвайки се да измислят нови техники и използват технологията, която им идва по пътя. Това е от съществено значение, защото ако не беше внимателно тестван от академици, тогава престъпниците или националните държави биха могли в крайна сметка да намерят начин да го разбият, без останалият свят да знае. Досега изследователите разкриха само теоретични пробиви и атаки на странични канали.
Атака със свързан ключ
През 2009 г. бяха открити поредица от свързани ключови атаки. Това е вид криптоанализа, който включва наблюдение как даден шифър работи под различни клавиши. Свързаните ключови атаки, открити от изследователите, не предизвикват голямо безпокойство; те са възможни само срещу протоколи, които не се прилагат правилно.
Известно-ключова отличителна атака
Отново през 2009 г. имаше известна ключова отличителна атака срещу осем кръгла версия на AES-128. Тези атаки използват ключ, който вече е известен, за да се разбере присъщата структура на шифъра. Тъй като тази атака беше само срещу осем кръгла версия, за ежедневните потребители на AES-128 не е много да се притеснявате.
Атака на страничния канал
Има няколко други теоретични атаки, но при сегашната технология те все още ще отнемат милиарди години, за да се напукат. Това означава, че Самият AES по същество е нечуплив в момента. Въпреки това AES все още може да бъде уязвим, ако не е приложен правилно, в това, което е известно като атака на страничен канал.
Атаки на странични канали възникват, когато системата изтича информация. Нападателят слуша звука, информацията за времето, електромагнитната информация или консумацията на енергия, за да събере изводи от алгоритъма, който след това може да се използва за разбиването му.
Ако AES се изпълнява внимателно, тези атаки могат да бъдат предотвратени чрез премахване на източника на изтичане на данни, или като се гарантира, че няма видима връзка между изтичащите данни и алгоритмичните процеси.
Последната слабост е по-обща от специфичната за AES, но потребителите трябва да знаят, че AES не прави автоматично данните си безопасни. Дори AES-256 е уязвим, ако хакерът има достъп до потребителския ключ. Ето защо AES е само един аспект на запазване на данните. Ефективното управление на паролите, защитните стени, откриването на вируси и образованието срещу атаките на социалния инженеринг са също толкова критични по свой начин.
Достатъчен ли е AES?
В сегашната епоха всички ние предаваме толкова много от нашите чувствителни данни онлайн, AES се превърна в съществена част от нашата сигурност. Въпреки че е от 2001 г. насам, повтарящият се процес на добавяне на клавиши, подмяна на байтове, преместване на редове и смесване на колони се оказа, че издържа теста на времето.
Въпреки настоящите теоретични атаки и всякакви потенциални атаки на страничен канал, Самият AES остава сигурен. Това е отличен стандарт за осигуряване на електронната ни комуникация и може да се прилага в много ситуации, когато чувствителната информация трябва да бъде защитена. Съдейки по текущото ниво на технологии и техники за атака, трябва да се чувствате уверени да го използвате и в обозримото бъдеще.
Защо се нуждаем от криптиране?
Сега, след като разгледахме техническите подробности на AES, е важно да обсъдим защо е важно криптирането. На най-основното ниво, криптирането ни позволява да кодираме информация, така че само тези, които имат достъп до ключа, да могат да декриптират данните. Без ключа, прилича на глупост. С клавиша буката от привидно случайни герои се превръща обратно в първоначалното си послание.
Криптирането се използва от хилядолетия от правителствата и военните за да не попадне чувствителна информация в погрешни ръце. С течение на годините тя прониква все повече и повече в ежедневието, особено след като толкова голяма част от нашите лични, социални и работни отношения са мигрирали към онлайн света.
Просто помислете за всички данни, които въвеждате във вашите устройства: пароли, банкови данни, Вашият лични съобщения и още много. Без каквото и да е криптиране, тази информация ще бъде много по-лесна за всеки, който да ги прихване, независимо дали са престъпници, луди стакери или правителството.
Толкова много нашата информация е ценна или чувствителна, така че е ясно, че тя трябва да бъде защитена по начин, така че само ние и тези, които упълномощаваме да имат достъп до нея. Ето защо се нуждаем от криптиране. Без него онлайн светът просто не би могъл да функционира. Ще бъдем лишени от всякаква конфиденциалност и сигурност, изпращайки онлайн живота си в абсолютен хаос.
Вижте също:
Инструмент за генериране на пароли
Ресурси за шифроване: Голям списък от инструменти и ръководства
Известни кодове и шифри през историята
Статистика за киберсигурността & факти
„Хакерство, киберпрестъпност“ от jaydeep_, лицензиран под CC0
азмер на блока от 128 бита и възможност за избор на ключ с дължина от 128, 192 или 256 бита. Този алгоритъм беше наречен Advanced Encryption Standard (AES) и беше приет като глобален стандарт за криптиране.
AES е изключително важен за киберсигурността, тъй като се използва за криптиране на много от нашите комуникации и данни. Той е бърз и сигурен, като държи любопитни очи далеч от нашите данни. Виждаме го в много приложения и технологии, които използваме всеки ден.
AES работи чрез разделяне на данните на блокове и прилагане на редица стъпки за криптиране на всяка част от блока. Тези стъпки включват добавяне на кръгли ключове, замяна на байтове, преместване на редове и смесване на колони. Тези стъпки се повтарят многократно, за да се осигури максимална сигурност.
AES е много по-сигурен от предишния стандарт за криптиране на данни (DES), който имаше само 56-битов ключ. Въпреки това, AES не е безопасен от атаки, като например атаки със свързан ключ, известно-ключова отличителна атака и атака на страничния канал.
В крайна сметка, AES е много важен за киберсигурността и е глобален стандарт за криптиране. Той е бърз и сигурен, като държи нашите данни в тайна. Въпреки това, трябва да бъдем внимателни и да се защитаваме от всякакви атаки, които могат да се появят.