Шифра

С Википедије, слободне енциклопедије

У криптографији, шифра је алгоритам за шифровање и дешифровање — серија прецизно дефинисаних корака који следе један за другим. У нетехничкој употреби, шифра и код представљају исти термин, али у криптографији то су различити појмови. У класичној криптографији, шифра је одвојена од кода. Начелно, у коду се замењивање врши на основу обимне књиге кодова, у којој се речи и фразе замењују случајним низом знакова. На пример, "UQJHS" може бити код за „Наставите до следећих координата“.

Оригинална информација је позната као отворени текст, а шифровани облик као шифровани текст или шифрат. Шифрована порука садржи све информације из отвореног текста, али није у облику читљивом за човека или рачунар без примене одговарајућег механизма за његово дешифровање - треба да представља насумичне знакове за све којима није намењена.

Операција шифровања обично зависи од додатне информације зване кључ. Процедура шифровања варира у зависности од кључа, који мења детаље алгоритма. Кључ мора да се изабере пре шифровања поруке. Без познавања кључа требало би да је тешко, или скоро немогуће, декриптовати шифрат у читљив отворени текст.

Треба разликовати термине дешифровање и декриптовање:

  • Дешифровање је претварање шифрата у отворени текст кад је кључ познат, врши га особа којој је порука намењена.
  • Декриптовање је покушај претварања шифрата у отворени текст кад кључ није познат - врше га особе којима порука није намењена. Декриптовање је део криптоанализе.

Већина модерних шифри може да се сврста у категорије на неколико начина:

  • По начину да ли се примењују на блоковима знакова обично сталне дужине (блок шифре), или на непрекидном низу знакова (позната под називима шифра низа, шифра тока или проточна шифра, енг. stream cipher).
  • По начину да ли се исти кључ користи за шифровање и дешифровање (алгоритми симетричних кључева), или се користи посебан кључ (алгоритми асиметричних кључева). Ако је алгоритам симетричан, кључ мора бити познат примаоцу и никоме више. Код асиметричног алгоритма, кључ за шифровање је различит од кључа за дешифровање, али је с њим у тесној вези. Ако један кључ не може да се утврди из другог, алгоритам асиметричног кључа има својство јавног/тајног кључа и један од кључева може бити обелодањен без губитка тајности информације.

Порекло[уреди | уреди извор]

Реч шифра потиче из француског језика, франц. cifre - бројка, тајни знак, односно из арапског арап. صفر, şafira - празно, şifr - нула, ништа.

У ранијим временима, цифра је имала значење „нула“, а касније је коришћена за било који децимални број, или било који број. Ове теорије показују како је цифра постала шифра у значењу шифровање:

  • У шифровању су се често користили бројеви.
  • Римски бројни систем је био незграпан, јер не познаје појам нуле (или празног скупа). Појам нуле (која се такође звала цифра), који је за нас сасвим природан, био је потпуно стран у средњовековној Европи. Цифра је стога добила значење скривања јасне поруке, односно шифровања.

Др Ал-Кади (ref-3) је закључио да се арапска реч şifr за нулу развила у европски технички термин за шифровање.

Шифровање и кодирање[уреди | уреди извор]

У не-техничкој употреби, „(тајни) код“ обично значи „шифра“. Међутим, у техничким дискусијама речи „код“ и „шифра“ се односе на два различита појма. Кодови раде на нивоу значења — то јест, речи и изрази се претварају у нешто друго и то сажимање начелно скраћује поруку. Насупрот томе, шифра ради на нижем нивоу: на нивоу појединачних слова, малих група слова, или, у модерним шемама, на поједине битове. Неки системи користе комбиновани код и шифру, такозвано „супершифровање“ за повећање сигурности. У неким случајевима, термини код и шифра се користе као синоними у замени и померању.

Историјски, криптографија је подељена у дихотомију кода и шифре; код има своју терминологију, аналогну оној за шифру: „кодирање“, „кодни текст“, „декодирање“ итд.

Међутим, код има доста недостатака, као што су осетљивост на криптоанализу и тешкоће у баратању гломазним књигама кодова. Због тога је код запостављен у модерној криптографији, а шифра је постала доминантна техника.

Типови шифре[уреди | уреди извор]

Постоји више врста различитих типова шифровања. Алгоритми који су се раније користили у прошлости се значајно разликују од модерних метода, а модерна шифра може да се класификује према начину како раде и да ли користе један или два кључа.

Историјске шифре[уреди | уреди извор]

Шифре са оловком и папиром које су коришћене у прошлости су познате под називом „класична шифра“. Оне укључују просте „шифре замене (супституције)“ и „шифре померања (транспозиције)“. На пример, „добар дан“ може да се шифрује као „ЖСДГЋ ЖГП“, где се у поруци „д“ замењује са „Ж“, „а“ са „Г“ итд. Померањем би „добар дан“ могло да буде „РДАНДОБА“. Ове просте шифре и примере је врло лако разбити, чак и без помоћи парова отворени текст - шифровани текст.

Просте шифре су замењене шифрама „полиалфабетске замене“, које мењају алфабет замене за свако слово. На пример, „добар дан“ може да се замени са „ЖЋЗИА ОНВ“, где се у поруци „д“ замењује са „Ж“ и „О“, „а“ са „И“ и „Н“. Чак и на малом узорку познатог или претпостављеног отвореног текста, шифре полиалфабетске замене и шифре померања слова (намењене за шифровање оловком и папиром) се врло лако разбијају.

Почетком двадесетог века изумљене су електро-механичке машине за шифровање и дешифровање, а користиле су померање, полиалфабетску замену и неку врсту „додатне“ замене. У „ротор машинама“, неколико ротирајућих дискова је служило за полиалфабетску замену, а додатне плоче су служиле за неку другу замену. Кључеви су се лако мењали заменом ротирајућих дискова и преспајањем жица додатних плоча. Иако су ови методи шифровања били комплекснији од претходних и захтевале машине за шифровање и дешифровање, изумљене су друге машине (као нпр. британска „Бомба“) за декриптовање ових метода шифровања.

Модерне шифре[уреди | уреди извор]

Модерни методи шифровања могу да се поделе по два критеријума: по типу коришћеног кључа и типу улазних података.

По типу кључа, шифре се деле на:

  • Алгоритми симетричног кључа (криптографија са тајним кључем), где се исти кључ користи и за шифровање и за дешифровање, и
  • Алгоритми асиметричног кључа (криптографија са јавним кључем), где се користе два различита кључа за шифровање и дешифровање.

Код алгоритма симетричног кључа (нпр. DES и AES), пошиљалац и прималац морају да имају исти кључ, који је унапред припремљен и који мора да буде тајан за све којима није намењен - пошиљалац користи тај кључ за шифровање, а прималац исти тај кључ за дешифровање. Фајстелова шифра користи комбинацију шифре замењивања и премештања. Већина алгоритама блок шифре је базирана на овој структури. Код алгоритма асиметричног кључа (нпр. RSA), постоје два посебна кључа: „јавни кључ“ се објављује и омогућава пошиљаоцу да изврши шифровање, док „тајни кључ“ прималац чува као тајну и користи га да изврши исправно дешифровање.

По типу улазних података, шифре се могу сврстати у две групе:

  • Шифра блокова, којом се шифрује блок података фиксне дужине, и
  • Шифра тока, којом се шифрује континуални низ података.

Величина кључа и рањивост[уреди | уреди извор]

У чисто математичком нападу (тј. у недостатку других информација које би помогле у разбијању шифре), пре свега су битна три фактора:

  • Математичке предности да се открију и искористе слабости шифре.
  • Доступна снага израчунавања, тј. снага рачунара која се може употребити за решавање проблема. Треба напоменути да просечне перформансе/капацитет једног рачунара нису једини фактор који се узима у обзир. Противник може, рецимо, да користи више спрегнутих рачунара и да тако значајно убрза потрагу за кључем (такозвани „напад грубом силом“).
  • Величина кључа, тј. дужина кључа који је употребљен за шифровање поруке. Како расте величина кључа, тако се повећава и комплексност претраживања грубом силом, све до тачке кад престаје да буде практично директно разбијање шифре.

Пошто је жељен ефект тешкоћа израчунавања, теоријски се бирају алгоритам и ниво тежине, а на основу тога се бира одговарајућа дужина кључа.

Пример овог процеса се може наћи на сајту „Дужина кључа“, који користи неколико извештаја да покаже рецимо да симетрична шифра са 128 битова, асиметрична шифра са 3072 битова и елиптична крива са 512 битова имају сличну тежину.

Клод Шенон је доказао, користећи разматрања теорије информација, да свака теоретски непробојна шифра мора имати дужину кључа најмање колико је дугачак отворени текст и да се кључ користи само једном (енг. one-time pad)

Види још[уреди | уреди извор]

Литература[уреди | уреди извор]

  • Helen Fouché Gaines, “Cryptanalysis”, Dover. 1939. ISBN 978-0-486-20097-2.
  • Ibrahim A. Al-Kadi. “The origins of cryptology: The Arab contributions”, Cryptologia, 16(2) (April 1992) pp. 97–126.
  • Ibrahim A. Al-Kadi. “Cryptography and Data Security: Cryptographic Properties of Arabic”, proceedings of the Third Saudi Engineering Conference. Riyadh, Saudi Arabia: Nov 24-27, Vol 2:910-921., 1991.
  • David Kahn (1996). The Codebreakers - The Story of Secret Writing. ISBN 978-0-684-83130-5.  (1967)
  • Abraham Sinkov. Elementary Cryptanalysis: A Mathematical Approach, Mathematical Association of America. 1966. ISBN 978-0-88385-622-2.

Спољашње везе[уреди | уреди извор]