Криптоанализа (Труди) је научна дисциплина која изучава методе “разбијања” криптографских система. Разбијање се врши без познавања кључа, обично у циљу добијања отвореног текста. Међутим, некада циљ не мора бити добијање отвореног текста – циљ може бити идентификација кључа, идентификација скупа лоших кључева и др.
Према количини и квалитету откривених информација, резултате криптоаналитичког напада можемо класификовати на следећи начин:
- Потпуно пробијање (total break) – нападач је открио кључ
- Глобална дедукција (global deduction) – нападач је открио функцију еквивалентну алгоритму дешифровања, али не и кључ
- Локална дедукција (instance/local deduction) – нападач је открио додатне отворене текстове или шифрате који раније нису били познати.
- Информациона дедукција (information deduction) – нападач је открио одређене информације о отвореним текстовима или шифратима који раније нису били познати
- Алгоритам разликовања (distinguishing algorithm) – нападач разликује шифрат од случајне пермутације
Нападач може да нападне шифарски систем тако што ће испробати све кључеве, где након сваког дешифровања проверава жељени резултат. Овакав напад назива се потпуна претрага кључева. Да би оваква претрага постала бесмислена, шифарски систем треба да поседује велики број кључева, односно велики простор кључева (keyspace). У великом простору кључева нападач не може испробати све кључеве у реалном времену, односно у неком разумном периоду. Велики простор кључева је неопходан услов за безбедност шифарског система, али није довољан. Историја криптологије нам је то показали више пута кроз вековну интелектуалну борбу криптографа и криптоаналитичара.
Каже се да је шифарски систем сигуран ако је најбољи познати напад потпуна претрага кључева, односно несигуран ако постоји било који облик скраћеног напада. Величина простора кључева је полазна основа за претпоставку о степену сигурности шифарског система – сигурност није егзактна него се заснива на претпоставкама!
Претпоставимо да шифарски систем има кључ дужине 100 бита, што значи да је простор кључева 2100. Ако нападач може да тестира 230 кључева у секунди онда може да пронађе прави кључ за око 19 трилиона година (19*1012 година). Ако постоји скраћени напад, па нападач не мора да тестира цео простор већ само 280 кључева истом брзином пронаћи ће прави кључ за 36 милиона година. Краће него у првом случају, али и даље бесмислено.
Неки од основних модела, односно типова напада су:
- Познат само шифрат (ciphertext-only attack, COA): Ако нападач има само шифрате порука шифрованих истим алгоритмом и поседује знање о отвореном тексту у виду општих знања о статистици једног језика, онда може успешно да нападне класичне шифарске системе који користе шифре замене (субституције) и дође до кључа.
- Потпуна претрага кључева (exhaustive key search – brute-force attack): Ако нападач има само шифрате порука, онда може да покуша да их дешифрује помоћу свих кључева из простора кључева док не нађе прави кључ.
- Познат отворени текст (known-plaintext attack, KPA): Ако нападач има шифрат неке поруке и њему одговарајући отворени текст, онда може, на основу ових информација, да покуша да дође до кључа.
- Познат одабран отворени текст (chosen-plaintext attack – CPA): Ако је нападач успео да добије привремени приступ систему за шифровање, онда може да креира шифрат одабраног отвореног текста (може да шифрује отворени текст по сопственом избору). На основу пара отворени текст/шифрат, нападач може, познавајући алгоритме шифровања, да покуша да дође до кључа.
- Познат прилагодљиви одабрани отворени текст (adaptive chosen-plaintext attack – CPA2): Ако је нападач успео да добије приступ шифарском систему, онда може да креира шифрате секвенци отвореног текста. На основу претходне секвенце може да претпостави следећу секвенцу (може да “научи” шифарски систем – машинско учење?).
- Познат одабрани шифрат (chosen-ciphertext attack CCA): Ако је нападач успео да добије приступ систему за дешифровање, онда може да креира отворени текст од одабраних шифрата (може да дешифрује шифрате које поседује). На основу пара шифрат/отворени текст, нападач може, познавајући алгоритме дешифровања, да покуша да дође до кључа.
Моделе напада можемо описати и помоћу ресурса које захтевају:
- Време – број корака рачунања који се морају извршити.
- Меморија – количина простора за складиштење потребно за извођење напада.
- Подаци – количина и врста отворених текстова и шифрата потребних за одређену врсту напада.
Не постоје прецизни бројеви о овим параметрима, али се у теоретској криптоанализи често наводе претпоставке.