Применение хеширования - Динамическое хеширование
Одно из побочных применений хеширования состоит в том, что оно создает своего рода слепок, "отпечаток пальца" для сообщения, текстовой строки, области памяти и т. п. Такой "отпечаток пальца" может стремиться как к "уникальности", так и к "похожести" (яркий пример слепка -- контрольная сумма CRC). В этом качестве одной из важнейших областей применения является криптография. Здесь требования к хеш-функциям имеют свои особенности. Помимо скорости вычисления хеш-функции требуется значительно осложнить восстановление сообщения (ключа) по хеш-адресу. Соответственно необходимо затруднить нахождение другого сообщения с тем же хеш-адресом. При построении хеш-функции однонаправленного характера обычно используют функцию сжатия (выдает значение длины n при входных данных больше длины m и работает с несколькими входными блоками). При хешировании учитывается длина сообщения, чтобы исключить проблему появления одинаковых хеш-адресов для сообщений разной длины. Наибольшую известность имеют следующие хеш-функции [17]: MD4, MD5, RIPEMD-128 (128 бит), RIPEMD-160, SHA (160 бит). В российском стандарте цифровой подписи используется разработанная отечественными криптографами хеш-функция (256 бит) стандарта ГОСТ Р 34.11--94.
Хеширование паролей
Ниже предполагается, что для шифрования используется 128-битный ключ. Разумеется, это не более, чем конкретный пример. Хеширование паролей - метод, позволяющей пользователям запоминать не 128 байт, то есть 256 шестнадцатиричных цифр ключа, а некоторое осмысленное выражение, слово или последовательность символов, называющуюся паролем. Действительно, при разработке любого криптоалгоритма следует учитывать, что в половине случаев конечным пользователем системы является человек, а не автоматическая система. Это ставит вопрос о том, удобно, и вообще реально ли человеку запомнить 128-битный ключ (32 шестнадцатиричные цифры). На самом деле предел запоминаемости лежит на границе 8-12 подобных символов, а, следовательно, если мы будем заставлять пользователя оперировать именно ключом, тем самым мы практически вынудим его к записи ключа на каком-либо листке бумаги или электронном носителе, например, в текстовом файле. Это, естественно, резко снижает защищенность системы.
Для решения этой проблемы были разработаны методы, преобразующие произносимую, осмысленную строку произвольной длины - пароль, в указанный ключ заранее заданной длины. В подавляющем большинстве случаев для этой операции используются так называемые хеш-функции. Хеш-функцией в данном случае называется такое математическое или алгоритмическое преобразование заданного блока данных, которое обладает следующими свойствами:
- 1. хеш-функция имеет бесконечную область определения, 2. хеш-функция имеет конечную область значений, 3. она необратима, 4. изменение входного потока информации на один бит меняет около половины всех бит выходного потока, то есть результата хеш-функции.
Эти свойства позволяют подавать на вход хеш-функции пароли, то есть текстовые строки произвольной длины на любом национальном языке и, ограничив область значений функции диапазоном 0..2N-1, где N - длина ключа в битах, получать на выходе достаточно равномерно распределенные по области значения блоки информации - ключи.
Похожие статьи
-
Разрешение коллизий - Динамическое хеширование
Составление хеш-функции - это не вся работа, которую предстоит выполнить программисту, реализующему поиск на основе хеширования. Кроме этого, необходимо...
-
Расширяемое хеширование (extendible hashing) - Динамическое хеширование
Расширяемое хеширование близко к динамическому. Этот метод также предусматривает изменение размеров блоков по мере роста базы данных, но это...
-
Введение - Динамическое хеширование
С хешированием мы сталкиваемся едва ли не на каждом шагу: при работе с браузером (список Web-ссылок), текстовым редактором и переводчиком (словарь),...
-
Удаление элементов хеш-таблицы - Динамическое хеширование
Многие программисты настолько слепо верят в алгоритмы, что даже не пытаются задумываться над тем, как они работают. Для них неприятным сюрпризом...
-
Страницы сайта, Теоретическая информация, Виды атак - Применение межсетевых экранов
Теоретическая информация Виды атак Парольные атаки Парольные атаки - попытка подбора пароля легального пользователя для входа в сеть. Много методов...
-
Области применения экспертных систем - Экспертные системы
Области применения систем, основанных на знаниях, могут быть сгруппированы в несколько основных классов: медицинская диагностика, контроль и управление,...
-
Подпрограммы - Язык программирования PERL. Сфера применения
Как и все структурированные языки программирования, Perl поддерживает подпрограммы. Подпрограмма может быть определена с помощью ключевого слова sub, как...
-
Расширим построенную в предыдущей главе статичную модель за счет кросс-временных взаимозависимостей из пункта 2.3. Для этого построим системы правил...
-
Продолжим идею примера, представленного выше и возьмем секрет, являющийся хэш-значением латинского квадрата. Предложим способ применения хэш-функции f...
-
Назначение и условия применения программы Назначение программной системы - реализация задач допускового проектирования. Компонент обеспечивает...
-
Данные в постоянном запоминающем устройстве (ПЗУ) хранятся постоянно. Данные, хранящиеся постоянно, называются энергонезависимыми, что означает, что они...
-
Области применения ЭС - Теоретические основы информационных технологий
ЭС в задачах интерпретации , как правило, используют информацию от датчиков для описания ситуации. В качестве примера приведем интерпретацию показаний...
-
Для получения хэш-значения секретного латинского квадрата порядка 10, нам необходимо 81 число (последнюю строку и столбец хранить не обязательно). Будем...
-
Использование языка PERL для написания CGI-cкриптов - Язык программирования PERL. Сфера применения
Как вы узнали из предыдущей главы, CGI обеспечивает узлам Web вoзмoжнoсть интерактивной работы с клиентскими программами, в качестве которых обычно...
-
Скалярные переменные - Язык программирования PERL. Сфера применения
Как отмечалось, скалярная переменная может содержать единственное значение. В языке Perl имена скалярных переменных всегда начинаются со знака ($). В еле...
-
Резюме - Язык программирования PERL. Сфера применения
В этой главе рассмотрено введение в программирование на языке Perl. Используя рассмотренные здесь концепции, можно писать сложные скрипты CGI на языке...
-
Во-первых, необходимо добавить вехи проекта для обозначения завершения важных этапов работ: - для первого этапа "Сбор исходной информации и формирование...
-
Обоснование выбора средств разработки проекта Для реализации корпоративной информационной системы "Бюджетное планирование и отчетность" в исследуемой...
-
Постановка задачи на разработку программного обеспечения Для того чтобы предлагаемая схема была интегрирована в САПР, который не имеет функции интеграции...
-
Применение полученных знаний на практике. Создание приложения - Программирование на языке C++
Я применил полученные знания при разработке простого приложения TodoList. Я соблюдал все принципы SOLID. Придерживаясь принципа инверсии зависимости я...
-
Анализ современных систем безопасности. Правовые аспекты применения видеонаблюдения Установка системы видеонаблюдения и ее использование являются весьма...
-
Ядром вычислительной dataflow-системы будем называть совокупность оборудования, которое осуществляет сбор данных для формирования исполняемого пакета. В...
-
Разработка конфигурации межсетевого экрана - Применение межсетевых экранов
Теперь давайте рассмотрим некоторые стандартные сетевые архитектуры и выясним, каким образом следует настраивать сетевой экран в той или иной конкретной...
-
Предпосылки создания межсетевых экранов - Применение межсетевых экранов
Интенсивное развитие глобальных компьютерных сетей, появление новых технологий поиска информации привлекают все большее внимание к сети Интернет со...
-
Применение - Исправление ошибок с помощью кода Рида-Соломона
Циклический помехоустойчивый кодирование восстановление В настоящий момент коды Рида-Соломона имеют очень широкую область применения благодаря их...
-
Объект ориентированный класс программирование Цель Работы - изучить методику создания одномерных динамических символьных массивов при помощи...
-
Составление частотного уравнения методом последовательного расщепления Рисунок 3.1 - Исходная модель. Расщепим ее на массе 2 Рисунок 3.2 - Расщепление на...
-
Малоканальные системы уплотнения абонентских линий (АЛ) основаны на технологии DSL со скоростью потока 160 кбит/с. В масштабах крупных офисов (чаще всего...
-
Построение модели предметной области с помощью описания структур данных и программного кода является классическим подходом в разработке ИС. Зачастую...
-
Введение - Преимущества применения dataflow-парадигмы в вычислительных системах
Dataflow-парадигма В архитектурах вычислительных сетей на сегодняшний день преобладающую роль играют ВС, управляемые потоком команд - Control Flow. Такая...
-
Идентификация моделей динамических систем - ПИД-контроллеры фирмы Honeywell
Для выполнения качественного регулирования необходимы знания о динамическом поведении объекта управления. Процесс получения (синтеза) математического...
-
В данной главе будет произведен анализ требований менеджмента информационной безопасности на основе стандартов ISO 27001 и 27002 для российских...
-
Введение - Философские основы кибернетики и методология ее применения в военном деле
Процесс научно-технической революции является причиной для пересмотра многих положений военной науки, так как коренные изменения в вооружении и...
-
Локальные сети - это такие сети, которые объединяют компьютеры, находящиеся рядом (в одной комнате, в одном или нескольких близко расположенных зданиях)....
-
Области применения баз данных в экономике - Базы данных и СУБД
Автоматизированные информационные системы (АИС), основу которых составляют базы данных, появились в 60-х годах в военной промышленности и в бизнесе -...
-
Ниже представлены общие свойства, которыми должна обладать хэш-функция: 1. При подаче в хэш-функцию строки произвольной длины, на выходе должна быть...
-
Области применения языка программирования С++ - Разработка видеолекций по программированию С++
Главным образом язык C++ используется на уровне инфраструктуры для разработки систем с ресурсными ограничениями и систем с высоким уровнем надежности....
-
Поскольку ИС создаются для удовлетворения информационных потребностей в рамках конкретной предметной области, то каждой предметной области (сфере...
-
Как уже было замечено выше, мониторинг - особый способ наблюдения и анализа за изменениями объекта управления, осуществляемый регулярно в течение всего...
-
В микросхемах памяти динамического типа функции ЭП выполняет электрический конденсатор, образованный внутри МДП структуры. Информация представляется в...
Применение хеширования - Динамическое хеширование