Да, вот она, чиновничья доля. Писать докторскую только для того, чтобы потом
подписывать 250 бумаг в день.
- Давай я тебе расскажу про свой алгоритм хеширования. Он намного лучше твоего
Стрибога.
Бытие определяет сознание. Я, общаясь тогда с Лешкой, как-то забыл об этом основном
материалистическом постулате. Леха, конечно, для вида ответил: «Давай. Позвони мне на
следующей неделе», но все дальнейшие неоднократные попытки приподнести ему на блюдечке с
голубой каемочкой мой любимый алгоритм хеширования MCSSHA завершались одинаково: «Я
сейчас не могу, давай завтра». В конце концов он по-генеральски рявкнул на меня: «Что ты
хочешь? Есть уже стандарт хеширования, отстань, я человек занятой» и больше я с ним на эту тему
не общался.
А почему я так самоуверенно говорю, что MCSSHA лучше Стрибога?
1. Скорость вычисления хеш-функции. Когда, еще в Корее, я принимал участие в
международном конкурсе SHA-3, то подготовил программу для тестирования скорости
различных алгоритмов хеширования. С помощью этой программы я оценивал скорости
различных алгоритмов, представленных на этот конкурс. И в большинстве случаев
скорости были сопоставимы. Не один я тестировал скорости различных алгоритмов
хеширования. В Иллинойсе профессор Бернштейн создал специальный портал для
тестирования скорости хеширования различных алгоритмов на различных компьютерах по
всему миру. Любой желающий мог прислать туда свой алгоритм хеширования и потом
увидеть результаты тестирования его скорости в сравнении с другими алгоритмами. Я
послал туда несколько модификаций MCSSHA и потом увидел результаты независимого
тестирования их скорости. Они оказались на уровне других международных алгоритмов и
даже чуть выше среднего уровня. Стрибог же на этот портал не посылали. Возможно, что
не хотели позориться, а еще, как мне кажется, из-за описанного в предыдущей главе
Precomputing. Precomputing – типичный прием для асимметричной ЕС-криптографии с ее
операциями с большими векторами, но хеш-функция вполне может обойтись без
Precomputing. Если мы собираемся вычислять хеш, например, с помощью смарт-карты, то
там каждый килобайт на счету и транжирить целых 16 килобайт на Стрибог додумались
только в России. Международные требования к реализации хеш-функции просты и
понятны: Init, Update, Final. И никаких Precomputing! Так что если бы решились авторы
послать свой Стрибог на тестирование в Иллинойс, то пришлось бы им посылать туда
Стрибог без Precomputing. А такая реализация, по моим оценкам, медленнее большинства
алгоритмов-участников конкурса SHA-3 раз в 100. Precomputing ускоряет вычисление хеш-
функции Стрибога примерно в 10 раз, но все равно он остается гораздо медленнее
большинства международных алгоритмов хеширования.
2. MCSSHA прошел международную экспертизу на конкурсе SHA-3. Экспертами выступал
швейцарец Jean-Philippe Aumasson и его французская коллега Maria Naya-Plasencia. Я
подробно писал об этом во второй книжке «Криптография и Свобода». На мой взгляд, особо критических недостатков они найти не смогли, а от тех методов «birthday attack», которые они использовали, мне удалось достаточно быстро и эффективно защититься, что
в конце концов признал и сам Jean-Philippe Aumasson, выступая на конференции, посвященной Password Hashing Competition. По крайней мере, для MCSSHA никому не
удавалось найти никаких «near collision», как это сделали для Стрибога канадские
студенты (см. Rebound attacks on Stribog, Riham AlTawy, Aleksandar Kircanski and Amr M.
Youssef. Concordia Institute for Information Systems Engineering, Concordia University,
Montréal, Quebéc, CANADA)
3. Когда я готовил последнюю версию MCSSHA-8 для международного конкурса Password
Hashing Competition, проводимого под руководством Jean-Philippe Aumasson, то в
конечном итоге вся реализация на С++ заняла 5 Кбайт. Абсолютно вся реализация! И не
нужно для MCSSHA никаких Precomputing.
4. MCSSHA по своим функциональным возможностям гораздо шире Стрибога. Стрибог
вычисляет значение хеш-функции длиной только 32 или 64 байта, а MCSSHA может
вычислить хеш функцию любой длины от 4 до 64 байт, причем для одного и того же
сообщения все эти хеш-функции будут абсолютно различны и зная, например, хеш-
функцию длины N и не зная самого сообщения нельзя определить значение хеш-функции
другой длины того же сообщения.
Про хеширование – все. Стрибог – for ever!
Глава 1.2. Цифровизация
«Цифровизация – наше светлое будущее» - такой лозунг все чаще можно слышать сейчас
где угодно. А что такое цифровизация? И как она связана с криптографией? Мне, например, чисто
интуитивно кажется, что цифровизация тесно переплетена с криптографией и, в первую очередь, с
цифровой подписью. И, следовательно, настоящая цифровизация означает широкое применение
криптографии в повседневной жизни. И тут уже встает такой каверзный вопрос: возможна ли
настоящая цифровизация при существующей в настоящее время в России и описанной в
предыдущих главах «криптографической политике»? При ее фактических запретах на
общепризнанные международные криптографические стандарты, кулуарные процедуры выбора
общероссийских криптографических стандартов, чиновничью монополию на криптографию?
На мой взгляд, возможны два варианта.
Первый (наиболее вероятный). Чиновники объявят о наступлении какой-нибудь
«квалифицированной цифровизации», как уже объявили о «квалифицированных сертификатах».
Второй (невероятный). Криптографическая политика в России кардинально изменится.
Давайте сначала представим себе этот невероятный второй вариант.
Криптографическая утопия
«Остапа понесло…»
***
Россия лет так через *дцать. Всем, даже школьникам, понятно, что криптография – это
специфический раздел математики, ее простейшие основы начинают изучать еще в средней
школе: что такое шифрование, цифровая подпись, криптографические ключи и т.п. Без этого в
дальнейшей жизни будет трудно. А при получении высшего образования – более углубленный
курс: симметричные и асимметричные криптографические алгоритмы, RSA, алгоритм Диффи-
Хеллмана и его ЕС-разновидности и многое другое, в зависимости от профиля учебного
заведения.
Большинство крупных компаний при приеме на работу проводят с соискателем
криптографический экспресс-экзамен. Если кандидат в бухгалтеры, например, не понимает, что
такое цифровая подпись и не знает, чем секретный ключ отличается от открытого, то шансов
устроиться на работу у него нет.
У каждого россиянина есть свой персональный цифровой секретный ключ для цифровой
подписи. И, может быть, даже не один, в зависимости от назначения подписи. Сама процедура
цифровой подписи очень проста, гораздо проще, чем нынешняя подпись с помощью авторучки.
Наиболее простой способ: приложи свой смартфон к сканеру – и все, больше ничего не надо, хотя
подписывать можно с помощью чего угодно: компьютера, планшета, мобильного телефона, смарт-часов и всего прочего, где есть простенький процессор. Цифровой секретный ключ может