Уважаеми Mixy,
Благодаря ти за усилието да ме зазпознаеш с нещо, с което няма как да бъда запознат, така че не се срамувам, че не съм го чел... аз не съм прочел още много неща, но животът е къс и няма време за всичко. Впрочем аз не се смятам за корифей в областта на криптографията, но ме подразни фразата на Генчо, че криптографията била сложна наука, т.е. едва ли не да си стоя в гьола. Оттам тръгна и всичко, защото аз пък се смятам по някакъв начин съпричастен и дори си позволявам да уча други хора (къде, как и защо е без значение в момента) на неща от тази сфера, като единственото ми голямо старание е да бъда, ако не можещ, то поне информиран.
След този дълъг увод, ето и нещо по същество.
Системи, протоколи и алгоритми могат да се измислят толкова, колкото хора попиташ или помолиш да го направят - всъщност със сигурност може да се каже, че няма да има двама, които независимо един от друг да предложат едно и също нещо. Част от тези хора ще имат възможността да направят идеите си публични - едни с книги, други с публикации, трети с технически отчети за работата по даден проект, накрая някои ще се "изявят" просто в Интернет - това поле за безплатна изява на всички.
Има една книга на всепризнат експерт по темата (станал известен преди като автор на считаната за класика Applied Cryptography) - Брус Шнайер. Шнайер вече не се занимава само с криптография, а от няколко години и с Интернет сигурност, и има фирма Counterpane Internet Security. Последната му (много умно написана) книга се казва Secrets and Lies: Digital Security in a Networked World. В нея (но и на други места преди тя да бе публикувана) Шнайер разказва подробно и убедително (за чуващите гласа на разума) на какви условия трябва да отговарят новите шифри, които се предлагат, какви математически принципи трбява да се използват в тях, защо не им се обръща внимание, ако не са предложени от "когото трябва" (и кои са тези лица), каква е системата на апробация (и на анализ) на тези шифри и т.н. и т.н. Стройна система от правила, съображения, критерии и принципи, която е (като че ли) вече възприета. Процедурата по неотдавна приетия за AES шифър демонстрира тази система: направено беше предложение за подаване на кандидати (с точната спецификация на която трябва да отговаря шифъра: публично дефиниран - условие НОМЕР #1, симетричен блоков, с разширяема дължина на ключа, да позволява софтуерна и хардуерна реализация, да не е защиен с патент), на първи рунд се подадоха 15 кандидатури, анализираха се (не знам точно) мисля две години, избраха се от тях пет (MARS на IBM, RC6 на RSA, Rijndael на двама белгийски експерти, единият жена, Serpent на трима утвърдени експерти-криптографи, Twofish на друга група от 6-има експерти, единият Шнайер), още поне година продължиха (публичните и тайни) атаки и анализи на тези 5 кандидатури, после NSA (в една рядка проява на публичност) направи супер-професионален анализ на качествата им и така се избра Rijndael. Сигурно се питаш защо разказвам надълго и нашироко за тези неща. По две причини: едната е, че обичам да разказвам, по-важната е да илюстрирам, че след като NIST възлага обществена поръчка за национален шифър (който да замести DES и вариантите му) за през следващите 20 (!) години и след като те са сметнали, че изнасянето на предложенията и анализа в публичното пространство е най-добрият начин, ами дявол да го вземе, аз смятам, че те са прави! Защото точно анализът на отпадналите 10 кандидатури откри дефекти (не back doors, на това ниво - и при тази публичност!!! - едва ли някой би си позволил да се компрометира така явно), които авторите не бяха забелязали. Забележи, че не става дума за елементарно разбиваеми шифри, а за слабости в генерирането на ключовете, които стесняват пространството на brute force методите и с оглед тенденцията към ускоряване на обработката на данни (днес измервани с тера-флопсове, но само след 10-ина години сигурно с пета-флопсове, а после дали няма да има и качествен скок!?) тези шифри изглеждали уязвими.
Авторите на алгоритми (дори когато са експерти и доказано умни хора) не могат да излязат от коловоза на собствените си идеи: в крайна сметка те предлагат (дори когато е съвсем добросъвестно) нещо, което смятат, че решава проблемите. Това по принцип им пречи да се запитат: "Амо ако допусна това, тогава какво?", защото те вече мислят, че са задали всички умни въпроси или контрааргументи и са намерили отговора. Само че не е така: никой (в това число и работещите в "Тайна - Русин Петров") не може да е по-умен от колективния ум на хилядите експерти (онези извън NSA - те по принцип нямат право нищо да коментират), които могат да анализират и вземат отношение по силата и слабостите на един или друг шифър. Има много тънки детайли в конструкцията на т.н. Feistel ciphers (без да навлизаме в подробности, DES-подобните), в методите и структурата на т.н. S-box-ове, в генерирането на рундовите ключове (subkeys), във вида на рундовата функция (дори не знам каква българска терминология има по въпроса), в изчисляването на минимално достатъчния брой рундове или итерации (защото, знаеш ли, едно време един експерт беше казал, че всеки Файстел-шифър може да стане достатъчно надежден като се използва достатъчно голям брой итерации), в производителността на хардуерната и софтуерна реализации (разглеждани поотделно), във минимизиране възможностите за използване на паралелни алгоритми за атака от типа brute force и сигурно още съображения, за които не се сещам в момента. Един човек (неизвестно име в криптографията) не може да вземе всичко това предвид, колкото и добронамерен да е. Затова изходът e предлагане на шифъра в публичното пространство. Самата дължина на ключа не е толкова важна. Ти как мислиш, американците толкова ли са луди, че да се самоограничат доброволно с до 256-битов ключ, когато на нас ни е хрумнало да използваме 1024, да речем? Дължината на ключа е само един елемент от комплекса фактори, определящи качеството и надеджността на един шифър (а и самата надеждност е само една от оценките - да, важна, но далеч не единствена). Ако конструкцията е калпава, дължината на ключа не помага. А дали е лоша или не, това авторът не може и не бива сам да решава.
Ти сега ще ми напомниш, че този алгоритъм е приет в нашето МО след като е бил силно видоизменен (явно на базата на констатации от група други експерти, за които отново никой нищо не е чувал, освен началниците им). Вярно, шифрите "военна категория" (military grade) са отделна история в историята и военните в Щатите например никога не са използвали DES, колкото и да му се е вярвало преди време. На това ще ти отговоря само едно: NSA рутинно дешифрира военните и дипломатически канали на почти всички страни, приятели и врагове (макар подробностите естествено да се свръхсекретни, има документални свидетелства за това, ако приемем като чиста монета написаното тук и там, сега и преди време). При това се използва не само чист (математически) криптоанализ, а и много методи за подмогането му. По-горе казах "почти", но не съм чувал България да е сред "костеливите" орехи (споменават се други страни). Предполагам тази констатация (и дори много повече) е достояние на нашите и допускам, че въпросната разработка (CSS) е опит за отговор. Като чувам от теб за предисторията на тази система, не се съмнявам, че скоро (ако не вече) NSA пак ще може да "чете" каквото им трябва. Пазенето на даден алгоритъм в тайна е лош начин за "повишаване на сигурността", а дългите ключове (и големите степенни показатели) не са гаранция за неразбиваемост (ако беше така в нашата епоха на компютризация щяха да се използват неограничено дълги ключове, защото каква толкова е разликата между 1000 и 10000 или 1000000 бита?)- положих усилия да го подкрепя с опсание на текущата световна практика, всичко друго, което би могло още да се каже, далеч надхвърля скромните рамки на този форум. Само ще завърша напомняйки, че в NSA използват хиляди математици (creme of the creme) и стотици суперкомпютри (отново същото), за да правят смешни напъни като дискутираните (не съм нихилист, а реалист).
Което не означава, че са всесилни, разбира се.
T-shirt slogan:
To err is human, to really foul things up requires a computerРедактирано от ivz на 27.11.02 11:33.
|