Криптография / Learn / book / outro
.htmПроблемы и перспективы развития средств защиты информации 9. Проблемы и перспективы развития средств защиты информации
9.1 Шифрование, помехоустойчивое кодирование и сжатие информации
9.2 Проблема распределения и длины ключей
9.3 Реализация криптографических методов
9.4 Стандарт JPEG2000
Заключение
9.1 Шифрование, помехоустойчивое кодирование и сжатие информации
9.1.1 Шифрование больших сообщений и потоков данных
Эта проблема появилась сравнительно недавно с появлением средств мультимедиа и сетей с высокой пропускной способностью, обеспечивающих передачу мультимедийных данных.
До сих пор говорилось о защите сообщений. При этом под ними подразумевалась скорее некоторая текстовая или символическая информация. Однако в современных ИС и информационных системах начинают применяться технологии, которые требуют передачи существенно больших объемов данных. Среди таких технологий:
· факсимильная, видео и речевая связь;
· голосовая почта;
· системы видеоконференций.
Объем передаваемой информации разных типов можно представить на условной диаграмме.
Так как передача оцифрованной звуковой, графической и видеоинформации во многих случаях требует конфиденциальности, то возникает проблема шифрования огромных информационных массивов. Для интерактивных систем типа телеконференций, ведения аудио или видеосвязи, такое шифрование должно осуществляться в реальном масштабе времени и по возможности быть “прозрачным” для пользователей.
Это немыслимо без использования современных технологий шифрования.
Наиболее распространенным является потоковое шифрование данных. Если в описанных ранее криптосистемах предполагалось, что на входе имеется некоторое конечное сообщение, к которому и применяется криптографический алгоритм, то в системах с потоковым шифрованием принцип другой.
Система защиты не ждет, когда закончится передаваемое сообщение, а сразу же осуществляет его шифрование и передачу (см. рис. 9.1.1).
Рис. 9.1.1 Потоковое шифрование данных
Наиболее очевидным является побитовое сложение входящей последовательности (сообщения) с некоторым бесконечным или периодическим ключом, получаемым например от генератора ПСП. (Отчасти это метод похож на гаммирование. Но важным отличием потокового шифрования является то, что шифрованию подвергаются не символы сообщения, а отдельные биты.). Примером стандарта потокового шифрования является RC4, разработанный Ривестом. Однако, технические подробности этого алгоритма держатся в секрете.( Данный алгоритм является собственностью RSA Data Security, и на его экспорт правительством США наложены серьезные ограничения.).
Другим, иногда более эффективным методом потокового шифрования является шифрование блоками. Т.е. накапливается фиксированный объем информации (блок), а затем преобразованный некоторым криптографическим методом передается в канал связи.
9.1.2 Шифрование, кодирование и сжатие информации
Эти три вида преобразования информации используются в разных целях, что можно представить в таблице.
Вид преобразования
Цель
Изменение объема информации после преобразования.
Шифрование
передача конфиденциальной информации;
обеспечение аутентификации и защиты от преднамеренных изменений;
обычно не изменяется, увеличивается лишь в цифровых сигнатурах и подписях
Помехоустойчивое кодирование
защита от искажения помехами в каналах связи
увеличивается
Сжатие (компрессия)
сокращение объема передаваемых или хранимых данных
уменьшается
Как видно эти три вида преобразования информации отчасти дополняют друг друга и их комплексное использование поможет эффективно использовать каналы связи для надежной защиты предаваемой информации.
Особенно интересным представляется возможность объединения методов кодирования и шифрования. Можно утверждать, что по сути кодирование - это элементарное шифрование, а шифрование - это элементарное помехоустойчивое кодирование.
Другая возможность - комбинирование алгоритмов шифрования и сжатия информации. Задача сжатия состоит в том, чтобы преобразовать сообщение в пределах одного и того же алфавита таким образом, чтобы его длина (количество букв алфавита) стала меньше, но при этом сообщение можно было восстановить без использования какой-то дополнительной информации. Наиболее популярные алгоритмы сжатия - RLE, коды Хаффмана, алгоритм Лемпеля-Зива. Для сжатия графической и видеоинформации используются алгоритмы JPEG и MPEG.
Главное достоинство алгоритмов сжатия с точки зрения криптографии состоит в том, что они изменяют статистику входного текста в сторону ее выравнивания. ( Принципиально важно с точки зрения криптостойкости, чтобы сначала осуществлялось сжатие информации а потом шифрование, но не наоборот.). Так, в обычном тексте, сжатом с помощью эффективного алгоритма все символы имеют одинаковые частотные характеристики и даже использование простых системы шифрования сделают текст недоступным для криптоанализа.
Разработка и реализация таких универсальных методов - перспектива современных информационных систем. (Так, в криптографическом пакете PGP перед шифрованием информации происходит ее сжатие по алгоритму, лицензированному у PKWARE.)
9.1.3 Шифрование и архивирование
При создании секретных архивов предполагается хранение данных в зашифрованном виде. Как правило архивы содержат большой объем информации, поэтому целесообразно при архивировании выполнять сжатие данных, устраняющее избыточность информации. Благодаря этой процедуре значительно уменьшается размер архива и упрощается создание рабочих и резервных копий. При передаче по низкоскоростным каналам связи больших массивов данных также целесообразно использовать предварительное сжатие данных. Шифрование преобразует исходный текст в псевдослучайную последовательность, которая не сжимается, поэтому процедуру сжатия данных необходимо выполнить до их шифрования. (Одним из тестов, с помощью которых предварительно дается качественная оценка стойкости шифра, является тест на сжатие криптограммы. Если криптограмма плохо сжимается, то считается, что шифр удовлетворяет этому тесту.)
Таким образом, при архивировании секретных данных (или передаче по телекоммуникационному каналу) выполняется следующая последовательность преобразований:
1. сжатие данных;
2. шифрование;
3. запись на носитель информации (или передача по каналам связи).
Для извлечения данных из архива или приема по каналу связи выполняется обратная последовательность процедур:
1. считывание шифртекста с носителя (или прием зашифрованных данных по каналу связи);
2. дешифрование;
3. восстановление (разархивирование данных).
Схема передачи секретных данных по низкоскоростному каналу связи показана на рисунке:
Рис. 9.1.2 Схема передачи секретных данных по низкоскоростному каналу связи
Устранение избыточности исходного сообщения значительно повышает стойкость шифрования к атакам на основе шифртекста. Однако, по отношению к атакам на основе известного текста, стойкость шифрования не изменяется, если используется известный алгоритм сжатия. Поскольку мы предполагаем, что оппонент знает алгоритм шифрования, то тем более мы должны предполагать, что он знает и алгоритм сжатия информации.
Представляет интерес совместное использование процедуры сжатия данных и вероятностного шифрования с простым механизмом включения случайных данных в криптограмму. Каждое из этих двух дополнительных преобразований повышает стойкость шифрования. При этом одно из них уменьшает исходный размер сообщения, а другое – увеличивает. Вероятностные шифры на основе конкатенации блоков шифруемых данных со случайными двоичными векторами позволяют легко регулировать степень увеличения размера криптограммы, поэтому параметры вероятностного шифрования можно подобрать такими, что порождаемый шифртекст будет обладать размером примерно равным размеру сообщения до устранения избыточности.
Шифрование и кодирование
При передаче конфиденциальной информации по телекоммуникационным каналам с шумом, кроме шифрования, необходимо осуществить также помехоустойчивое кодирование передаваемых данных. Для блочных криптосистем процедуры шифрования и дешифрования обладают выраженным рассеиванием влияния входных знаков на многие выходные, причем это влияние имеет псевдослучайный характер. В связи с этим при использовании блочных криптосистем на передающем пункте процедуру помехоустойчивого кодирования необходимо осуществить после шифрования, а на приемном пункте сначала выполнить декодирование, а затем дешифрование. Схема передачи данных по низкоскоростному каналу связи с шумом показана на рисунке:
Рис. 9.1.3 Схема передачи данных по низкоскоростному каналу связи с шумом
9.2 Проблема распределения и длины ключей
9.2.1 Длина ключа и стойкость
Длина ключа определяет верхнюю границу стойкости криптосистемы. Нападающий всегда может воспользоваться силовой атакой, которая состоит в тотальном переборе по всему пространству возможных ключей. Однако, размер этого пространства растет по экспоненциальному закону при увеличении длины ключа. Если длина ключа в битах равна l = 64, то число возможных ключей составляет более 1019. При l = 128 их число уже составляет 1038. В настоящее время вычислительные технологии находятся близко к решению задачи перебора 1020 вариантов за разумный интервал времени. Перебор 1038 представляется недостижимым не только для современных технологий, но и в обозримом будущем. В настоящее время происходит переход от 56-битового ключа в криптосистеме DES к 80-битовому или 128-битовому ключу в новых симметричных шифрах.
К доказуемо стойким блочным криптосистемам можно отнести шифры, для которых теоретически было бы доказано, что лучший способ криптоанализа имеет трудоемкость не меньше некоторого значения, которое гарантирует, что в ближайшее время этот способ будет вычислительно неосуществимым. В настоящее время для многочисленных шифров предложены различные методы криптоанализа и дана оценка трудоемкости решения криптоаналитической задачи для каждого из них.
Однако существует принципиальная теоретическая трудность нахождения лучшего алгоритма криптоанализа, что и определяет сложность общего доказательства стойкости.
Для того, чтобы новый шифр мог быть принят на вооружение, необходимо выполнить следующие условия:
1. Он должен быть составлен в соответствии с требованиями конкретного приложения и включать механизмы, реализующие современные принципы задания криптографической стойкости.
2. В течение длительного времени он должен тестироваться опытными экспертами и должна быть доказана его стойкость ко всем известным методам криптоанализа.
Тестирование шифров относится к наиболее сложному и дорогостоящему этапу разработки криптосистем. Для повышения уверенности в стойкости новых шифров их подвергают испытаниям в условиях, благоприятствующих успеху решения криптоаналитической задачи. Например, исследуются модификации с уменьшенным числом раундов шифрования, предполагается возможность генерации аппаратных шифратора, считается, что часть ключа шифрования известна нападающему. В случае тестирования недетерминированных шифров рассматриваются нападения на основе известной модификации алгоритма шифрования и на основе выбора наиболее слабой модификации. Могут быть использованы варианты атак на модификации шифра с уменьшенным размером ключа шифрования и с уменьшенным размером входного блока данных. Чем строже процедура тестирования, тем больше гарантий, что не будут найдены новые специфические способы нападений. Теоретические гарантии стойкости могут дать только шифры с бесконечным случайным числом. Однако, для защиты компьютерной информации они представляются крайне неудобными. Кроме того, в таких приложениях возникает проблема защиты ключа, объем которого равен объему информации.
Близким к понятию секретного ключа является понятие пароля. Пароль также представляет собой секретный элемент. Обычно под ключом понимают элемент, управляющий процессом шифрования, а под паролем – элемент, служащий для идентификации субъекта (например, пользователя или рабочей станции). Во многих случаях пароль служит в качестве информации, управляющей процессом шифрования, а секретный ключ – для идентификации субъекта. Случайный ключ или пароль труден для запоминания, поэтому его часто хранят на съемных носителях, которые в свою очередь хранятся при обеспечении защиты от несанкционированного доступа. Выбор пароля, удобного для запоминания существенно сужает число возможных его вариантов, поэтому в этом случае требуется выбирать более длинные пароли или даже целые фразы.
В случае двухключевых шифров используются секретные ключи, имеющие длину существенно большую, чем длина ключей, используемых в одноключевых криптосистемах. Это связано с особенностями криптоаналитической задачи в случае асимметричных шифров. В некоторых двухключевых криптосистемах секретные ключи выбираются случайно, а затем генерируются соответствующие им открытые ключи (например, в методе Диффи-Хеллмана и цифровой подписи Эль-Гамаля). В других криптосистемах формируются секретные ключи, удовлетворяющие специальным требованиям (например, множители p и q в системе цифровой подписи RSA). Во втором случае секретные ключи также выбираются случайно, однако после случайного выбора секретного параметра осуществляется его проверка на удовлетворение требуемым условиям (например, требуется использование простых чисел или чисел взаимно простых с некоторым уже выбранным параметром).
9.2.2 Использование “блуждающих ключей”
Как было неоднократно отмечено, проблема распределения ключей является наиболее острой в крупных информационных системах. Отчасти эта проблема решается (а точнее снимается) за счет использования открытых ключей. Но наиболее надежные криптосистемы с открытым ключом типа RSA достаточно трудоемки, а для шифрования мультимедийных данных и вовсе не пригодны.
Оригинальные решения проблемы “ блуждающих ключей” активно разрабатываются специалистами. Эти системы являются некоторым компромиссом между системами с открытыми ключами и обычными алгоритмами, для которых требуется наличие одного и того же ключа у отправителя и получателя.
Идея метода достаточно проста.
После того, как ключ использован в одном сеансе по некоторому правилу он сменяется другим. Это правило должно быть известно и отправителю, и получателю. Зная правило, после получения очередного сообщения получатель тоже меняет ключ. Если правило смены ключей аккуратно соблюдается и отправителем и получателем, то в каждый момент времени они имеют одинаковый ключ. Постоянная смена ключа затрудняет раскрытие информации злоумышленником.
Основная задача в реализации этого метода - выбор эффективного правила смены ключей. Наиболее простой путь - генерация случайного списка ключей. Смена ключей осуществляется в порядке списка. Однако, очевидно список придется каким-то образом передавать.
Другой вариант - использование математических алгоритмов, основанных на так называемых перебирающих последовательностях. На множестве ключей путем одной и той же операции над элементом получается другой элемент. Последовательность этих операций позволяет переходить от одного элемента к другому, пока не будет перебрано все множество.
Наиболее доступным является использование полей Галуа. За счет возведения в степень порождающего элемента можно последовательно переходить от одного числа к другому. Эти числа принимаются в качестве ключей.
Ключевой информацией в данном случае является исходный элемент, который перед началом связи должен быть известен и отправителю и получателю.
Надежность таких методов должна быть обеспечена с учетом известности злоумышленнику используемого правила смены ключей.
Интересной и перспективной задачей является реализация метода “блуждающих ключей” не для двух абонентов, а для достаточно большой сети, когда сообщения пересылаются между всеми участниками.
9.3 Реализация криптографических методов
Проблема реализации методов защиты информации имеет два аспекта:
· разработку средств, реализующих криптографические алгоритмы,
· методику использования этих средств.
Каждый из рассмотренных криптографических методов могут быть реализованы либо программным, либо аппаратным способом.
Возможность программной реализации обуславливается тем, что все методы криптографического преобразования формальны и могут быть представлены в виде конечной алгоритмической процедуры.
При аппаратной реализации все процедуры шифрования и дешифрования выполняются специальными электронными схемами. Наибольшее распространение получили модули, реализующие комбинированные методы.
При этом непременным компонентов всех аппаратно реализуемых методов является гаммирование. Это объясняется тем, что метод гаммирования удачно сочетает в себе высокую криптостойкость и простоту реализации.
Наиболее часто в качестве генератора используется широко известный регистр сдвига с обратными связями (линейными или нелинейными). Минимальный период порождаемой последовательности равен 2N-1 бит. Для повышения качества генерируемой последовательности можно предусмотреть специальный блок управления работой регистра сдвига. Такое управление может заключаться, например, в том, что после шифрования определенного объема информации содержимое регистра сдвига циклически изменяется.
Другая возможность улучшения качества гаммирования заключается в использовании нелинейных обратных связей. При этом улучшение достигается не за счет увеличения длины гаммы, а за счет усложнения закона ее формирования, что существенно усложняет криптоанализ.
Большинство зарубежных серийных средств шифрования основано на американском стандарте DES. Отечественные же разработки, такие как, например, устройство КРИПТОН, использует отечественный стандарт шифрования.
Основным достоинством программных методов реализации защиты является их гибкость, т.е. возможность быстрого изменения алгоритмов шифрования.
Основным же недостатком программной реализации является существенно меньшее быстродействие по сравнению с аппаратными средствами (примерно в 10 раз).
В последнее время стали появляться комбинированные средства шифрования, так называемые программно-аппаратные средства. В этом случае в компьютере используется своеобразный “криптографический сопроцессор” (А то и просто специализированный шифровальный микропроцессор как, например, Clipper) - вычислительное устройство, ориентированное на выполнение криптографических операций (сложение по модулю, сдвиг и т.д.). Меняя программное обеспечение для такого устройства, можно выбирать тот или иной метод шифрования. Такой метод объединяет в себе достоинства программных и аппаратных методов.
Таким образом, выбор типа реализации криптозащиты для конкретной ИС в существенной мере зависит от ее особенностей и должен опираться на всесторонний анализ требований, предъявляемых к системе защиты информации.
9.4 Стандарт JPEG2000
Введение
В последнее время информационные технологии приобрели особый статус. Если еще несколько десятилетий назад мало кто имел хоть какое-то представление об этой новой и достаточно прогрессивной области знаний, сегодня нелегко найти человека, так или иначе не сталкивавшегося в жизни с ее практическими приложениями. Повсеместная компьютеризация и информатизация, цифровой звук, цифровое видео, цифровая телефония – это лишь отдельные примеры внедрения информационных технологий в быту. По прогнозам специалистов, в ближайшие годы доля подобных приложений будет только увеличиваться. В связи с этим, дальнейшее изучение прикладных аспектов теории информации приобретает особое значение. Некоторые из разрабатываемых технологий уже сегодня выглядят много обещающе. Вероятно, одним из самых ярких примеров этому могут служить методы цифровой обработки видео изображений.
Проблема обработки видеосигнала отнюдь не нова. Уже начиная с середины двадцатого века, ученые занимаются активными исследованиями в данной области. Следствием их усилий на первоначальном этапе стало появление аналогового телевидения. Формирование, передача и отображение движущейся картинки оказываются возможными благодаря применению несложных аналоговых элементов. Практический эффект от подобной новинки сразу привлекает внимание специалистов, что приводит к настоящему телевизионному и кино индустриальному буму.
Ближе к концу двадцатого века исследователи все чаще направляют свои усилия на разработку цифровых технологий передачи и обработки сигнала. Преимущество цифрового подхода над аналоговым очевидно: цифровое представление более удобно в использовании, оно позволяет добиться большего качества и, подчас, большей вместимости. В конце восьмидесятых перспективность использования цифрового представления уже не вызывает сомнений, а дополнительный толчок к развитию цифровых методов дает появление персональных компьютеров.
Первые персональные вычислительные машины были не достаточно производительны для выполнения сложных задач связанных с обработкой потокового видео. Тем не менее очень часто производительности вполне хватало для осуществления манипуляций с отдельными изображениями. В связи с этим произошло выделение двух составляющих проблемы обработки видео. Проблема обработки потока изображений и проблема обработки одиночных изображений теперь представляли собой две отдельные задачи, причем, имея в своем распоряжении не достаточно быстрые, но, что немаловажно, недорогие персональные вычислительные машины, исследователи имели значительно больше возможностей для решения именно последней задачи. Как следствие, именно обработка неподвижных изображений стала одним из основных приложений персональных компьютеров.
Под обработкой неподвижных изображений обычно подразумеваются не только манипуляции, приводящие к их изменению, но также и операции позволяющие изменять физическое представление изображений без визуально ощутимых последствий. Последнее принято называть сжатием изображений.
Процесс сжатия приводит к уменьшению объема представления информации на информационном носителе. Существует два типа сжатия: сжатие, сопряженное с искажениями представляемой информации, и сжатие, не допускающее таких искажений. Первое носит название сжатие с потерями, а второе – сжатие без потерь. По понятным причинам сжатие с потерями применимо далеко не ко всем типам информации, однако там, где оно все таки может быть использовано, оно, как правило, оказывается значительно более эффективным по сравнению со сжатием без потерь. В случае с неподвижными изображениями сжатие с потерями оказалось не только применимым, но и более чем оправданным. Как оказалось, человеческое восприятие не улавливает некоторые визуальные детали; потеря или искажение этих деталей соответственно является совершенно безболезненной для человека.
Исследователями было разработано огромное множество методов сжатия неподвижных изображений. Эти методы обладают различной эффективностью и различной вычислительной сложностью, что позволяет находить решение для очень широкого спектра задач. Однако они не совместимы между собой. Можно воспользоваться любым методом для получения представления изображения, но это не гарантирует возможность корректной интерпретации представления лицом, не вовлеченным в процесс кодирования. Здесь естественным образом встает проблема унификации методов, то есть проблема стандартизации.
Координацией усилий по стандартизации методов сжатия видео изображений традиционно занимается международная организация по стандартизации (ISO) в лице специальной группы экспертов по фотографическим изображениям (JPEG), а также отделение стандартизации международного телекоммуникационного союза (ITU-Т). Разработка первого полноценного стандарта, начатая в 1986 году, увенчалась появлением в 1992 году международного стандарта JPEG. Формирование стандарта проводилось на конкурсной основе. Среди множества предложений было выбрано одно, которое было взято за основу стандарта; в дальнейшем предложение было усовершенствовано усилиями различных специалистов.
JPEG в целом оказался достаточно удачным стандартом. Он обеспечивает высокую эффективность сжатия при приемлемом уровне потерь и допускает эффективные практические реализации. К недостаткам стандарта традиционно относят функциональную ограниченность формата данных – форма представления информации препятствует ее использованию в приложениях, связанных с видео редактированием.
Стандарт JPEG широко используется на практике с самого появления. Он стал одним из наиболее популярных стандартов хранения информации. На сегодняшний день стандарт поддерживает практически каждое приложение, ориентированное на обработку видео изображений.
Несмотря на огромную популярность стандарта JPEG, по прошествии нескольких лет естественным образом возникла необходимость в появлении нового стандарта. К этому времени были разработаны более эффективные методы сжатия, а приложения требовали от форматов хранения видеоданных все больше и больше функциональности. Стандарт JPEG часто не удовлетворял новым требованиям и должен был быть заменен.
Название нового стандарта – JPEG2000 – изначально указывало на год его ожидаемого выхода. Но на сегодняшний день данный стандарт так окончательно и не увидел свет, хотя основные этапы его утверждения все же были успешно пройдены (в частности, JPEG2000 приобрел официальный статус международного стандарта). Ниже предлагается его краткое описание.
9.4.1 Описание стандарта
Отправной точкой для стандарта JPEG200 стало предложение М. Болиека 1996 года. Разработанный Болиеком алгоритм должен был стать основой нового стандарта сжатия изображений без потерь JPEG-LS, но был отвергнут в пользу более перспективного алгоритма LOCO-I. Алгоритм Болиека, тем не менее, обладал рядом очень привлекательных возможностей, что послужило причиной создания нового стандарта JPEG2000.
Объявление о начале разработки нового стандарта датируется мартом 1997 года. Традиционно был устроен конкурс алгоритмов сжатия, на котором проводилось численное и визуальное сравнение результатов работы различных программ. Программа-победитель (ею стала разработка аризонского университета, алгоритм WTCQ) была выбрана за основу первой версии стандарта. В ноябре 1998 года с подачи Д. Таубмана в стандарт было внесено существенное изменение. Таубман предложил решение, позволившее сделать стандарт существенно более гибким и менее требовательным к ресурсам вычислительной системы. Алгоритм Таубмана (алгоритм EBCOT) в результате составил основу финальной версии стандарта.
В процессе стандартизации было учтено большое количество различных предложений. Так как все они не могли составить новый стандарт, было принято решение часть из них внести в его базовый вариант, а часть рассматривать как дополнение. На данный момент документация стандарта представлена двумя частями (в будущем планируются дополнительные разделы). Первая описывает основные моменты, которые должны быть в обязательном порядке соблюдены в любой реализации стандарта. Вторая содержит расширения основной части стандарта, которые не являются обязательными. Данный подход выгоден тем, что, во-первых, учитывает большое количество различных предложений и обеспечивает гибкость, а во-вторых, позволяет получать достаточно непритязательные в плане вычислительных ресурсов реализации, совместимые со стандартом.
Разделение стандарта на основную и дополнительную часть лучше всего иллюстрируется на примере алгоритмов квантования. Предложение аризонского университета подразумевало использование сложного алгоритма квантования, получившего название квантование с сетчатой геометрией. Фактически была предложена быстрая реализация векторного квантования. Как известно, векторное квантование обладает большей эффективностью по сравнению со скалярным квантованием, однако, в то же время, оно является существенно менее производительным. В предложенном алгоритме WTCQ векторное квантование реализовано на базе конечного набора скалярных квантователей, выбор которых (для осуществления квантования) производится в соответствии с возможными направлениями обхода заданного графа (сети). Направление обхода одновременно соответствует младшим разрядам квантованных значений, полученных с использованием предыдущих квантователей (выбранных на предыдущем этапе). Путем перебора возможных путей внутри графа можно найти более или менее эффективные способы квантования произвольной по длине последовательности величин. Несмотря на то, что подобный алгоритм весьма прост, его сложность, все же, не идет ни в какое сравнение со сложностью алгоритма обычного равномерного квантования. Как следствие, последний (используется равномерный квантователь с мертвой зоной вблизи нуля) является обязательной частью стандарта, а первый (квантование с сетчатой геометрией) представляет собой расширение стандарта и является лишь его опцией.
Сжатие по стандарту JPEG2000 основано на ставшем уже классическим алгоритме пирамидального вейвлет-преобразования. Обработка вейвлет-коэффициентов осуществляется методом контекстно-зависимого бит-ориентированного арифметического кодирования.
Первоначально изображение подвергается чередующимся последовательностям вертикальных и горизонтальных одномерных вэйвлет-преобразований. Сначала преобразуются все строки, а затем все столбцы. На следующем этапе левая верхняя четверть матрицы получившейся в результате предыдущего преобразования опять преобразуется (сначала все строки, затем все столбцы). И так далее. Количество этапов соответствует количеству уровней вейвлет-декомпозиции. В результате преобразования мы получаем множество прямоугольных диапазонов вейвлет-коэффициентов, которые принято называть частотными диапазонами, так как они содержат информацию о том, как ведет себя исходный двухмерный сигнал (изображение) при разном разрешении (то есть набор коэффициентов при разной частоте).
Для преобразования могут использоваться различные вейвлет-фильтры. Обязательная часть стандарта предписывает использование только двух фильтров: обратимый “5/3” –для сжатия без потерь и необратимый “9/3” – для сжатия с потерями (оба фильтра являются классическими вейвлет-фильтрами). Расширение допускает любые другие фильтры. Подразумевается, что для реализации преобразования используется удобная с практической точки зрения лифтинг-схема.
После преобразования осуществляется квантование коэффициентов. Именно на этапе квантования возникают основные информационные потери, и именно за счет квантования возможно существенное уменьшение объема представления изображения. (Естественно, в квантовании нет необходимости, если производится сжатие без потерь.) Как уже было сказано, квантование может быть либо равномерным скалярным, либо каким-либо другим (например, векторным). В случае использования равномерного скалярного квантования квант-параметр может меняться в зависимости от квантуемого диапазона.
Этап арифметического кодирования является завершающим этапом кодирования. Диапазоны коэффициентов разбиваются на прямоугольные кодовые блоки (как правило,32x32 или 64x64). Каждый из блоков кодируется независимо. Это означает, что состояние арифметического кодера сбрасывается перед кодированием очередного кодового блока. В процессе кодирования коэффициенты в блоке виртуально представляются в виде битовых плоскостей. Одну из таких плоскостей составляют знаки коэффициентов; остальные плоскости соответствуют различным разрядам величин коэффициентов (положение бита в плоскости соответствует положению коэффициента в блоке). Кодирование коэффициентов сводится к кодированию битов, составляющих эти коэффициенты. Таким образом, арифметическое кодирование является бит-ориентированным.
Арифметическое кодирование основано на контекстно-зависимой модели. Контекст формируется как функция от значений битов, окружающих кодируемый бит. Кодирование осуществляется по плоскостям: сначала кодируется плоскость, соответствующая старшему разряду коэффициентов, затем следующая по убыванию, и т.д. Во время кодирования каждому коэффициенту в кодируемом блоке ставится в соответствие параметр значимость. Коэффициент называется значимым, если в уже закодированных на дынный момент битовых плоскостях, присутствует хотя бы один ненулевой разряд данного коэффициента. Каждая битовая плоскость кодируется в три прохода. Во время первого кодового прохода осуществляется распространение информации о значимости коэффициентов. Для каждого бита плоскости, если соответствующий коэффициент еще не является значимым, и если хоть один соседний коэффициент уже является значимым, осуществляется кодирование факта значимости для текущего коэффициента, то есть фактически осуществляется кодирование значения данного бита текущей кодируемой плоскости. Если кодируемый бит оказался ненулевым, сразу после его обработки кодируется соответствующий бит битовой плоскости знаков коэффициентов (кодирование знака). Во время второго кодового прохода кодируются все биты, соответствующие значимым на данный момент коэффициентам и не обрабатывавшиеся во время первого прохода. В отличие от предыдущего кодового прохода, когда решение о кодировании принималось на основе информации о значимости соседних коэффициентов, во время данного прохода биты кодируются в обязательном порядке. Цель третьего кодового прохода – обработать те биты, которые не были обработаны во время первого и второго проходов. Во время третьего прохода арифметическое кодирование применяется совместно с групповым кодированием. Существенной деталью, предусмотренной стандартом, является возможность пропуска кодовых проходов, что является еще одним источником повышения эффективности за счет информационных потерь (первым, наиболее явным источником является квантование). Данная возможность активно используется для осуществления контроля над скоростью генерации кода.
Представление информации, полученное в результате вейвлет-преобразования, очень удобно тем, что оно обеспечивает возможность получения приблизительных копий изображения без осуществления полного обратного преобразования. Обратное преобразование осуществляется в порядке, обратном порядку прямого преобразования. Производя ограниченное число обратных декомпозиций (объединение частотных диапазонов), полагая, что все не вовлеченные в преобразование частотные диапазоны содержат исключительно нулевые элементы, мы легко можем получить либо копию изображения в уменьшенном масштабе, либо исходное изображение, но в более низком качестве по сравнению с изображением, полученным в результате полного обратного преобразования. Учитывая тот факт, что блоки вейвлет-коэффициентов кодируются независимо друг от друга, мы получаем возможность частичного декодирования не только на уровне преобразования, но и на уровне интерпретации кода. Для получения приблизительной копии изображения достаточно декодировать всего лишь часть информации, а затем произвести частичное обратное преобразование. Таким образом, формат хранения изображения обеспечивает масштабируемость как по разрешению, так и по качеству.
Другим важным преимуществом нового стандарта является возможность доступа к отдельным элементам изображения без полного декодирования его представления. Обеспечивается такая возможность, во-первых, разбиением исходного изображения на непересекающиеся области (тайлы), которые кодируются как отдельные изображения, а во-вторых, представлением кода отдельного тайла в виде частей (слоев), каждая из которых является суммарным кодом коэффициентов, соответствующих некоторой его (тайла) области (отметим, что слои в свою очередь делятся на так называемые пакеты, содержащие код блоков коэффициентов на разных уровнях декомпозиции). Для того, чтобы декодировать какую-либо область изображения достаточно определить, каким тайлам она принадлежит и какие слои, относящиеся к этим тайлам содержат код блоков коэффициентов, необходимых для восстановления требуемой области.
Безусловно, «удобное» представление изображения не может быть выгодным с точки зрения эффективности сжатия. Действительно, с уменьшением размера структурных элементов (тайлов, областей тайлов, образующих слои и др.) эффективность сжатия несколько снижается. Стандарт в данном случае оставляет нам выбор: с одной стороны, мы имеем возможность получать информационные представления, позволяющие достаточно быстро извлекать и редактировать части изображения, с другой стороны, стандарт не препятствует созданию информационных представлений, эффективных по объему.
Как нетрудно заметить, все, что было сказано выше, в действительности относится не совсем к сжатию изображений. Речь шла всего лишь о сжатии матриц. Реальные изображения подчас являются более сложными объектами. Как правило, изображение включает в себя сразу несколько компонентов. Чаще всего, оно состоит из трех цветовых компонентов: красного, зеленого и синего. Так как каждый компонент в отдельности представляет собой матрицу, для того, чтобы закодировать изображение целиком, нам необходимо закодировать не одну, а три матрицы. Такой подход, как показывает практика, приемлем, но не является самым удачным. Большей эффективности сжатия можно добиться в случае, когда кодируемые компоненты представлены в яркостно-цветовой форме.
Для преобразования изображения из стандартного цветового представления RGB в яркостно-цветовое представление YCrCb стандартом предусмотрены две процедуры: обратимая и необратимая. Необратимая процедура в точности повторяет классическое преобразование RGB-> YCrCb, которое использовалось, например, в старом стандарте JPEG. Обратимая процедура представляет собой достаточно грубое приближение к классической необратимой процедуре. Как следует из названия, данное преобразование не ведет к потере цветовой информации, и может применяться в тех случаях, когда задействуется режим сжатия без потерь.
Для обеспечения помехоустойчивости информационного представления и удобства доступа к информации в стандарте JPEG2000 предусмотрена система маркеров и маркерных сегментов. Маркеры играют роль разграничителей внутри информационного потока; маркерные сегменты содержат в себе параметры фрагментов информации ограниченных маркерами. Данные, начинающиеся с маркера, как правило, могут быть корректно проинтерпретированы без какой-либо дополнительной информации (это, естественно, не означает возможность восстановления целого по фрагментам), что обеспечивает возможность частичного восстановления изображения, представление которого было повреждено. Введение элементов помехоустойчивости дает зеленый свет использованию стандарта во всевозможных телекоммуникационных приложениях.
В заключение обзора стандарта следует сказать несколько слов относительно его реальной эффективности. Достижение высокого качества сжатия, безусловно, было одной из главных задач при его создании, и здесь разработчики добились явного прогресса. Стандарт JPEG2000 превосходит по эффективности стандарт JPEG примерно в 2 раза при сжатии с потерями и на 5-20% при сжатии без потерь. Конечно, эффективность при сжатии без потерь в данном случае оказывается не такой высокой, как, скажем, у стандарта JPEGLS, однако она вполне приемлема. Что же касается эффективности сжатия с потерями, здесь стандарт позволяет получать результаты, близкие к наилучшим на сегодняшний день результатам для подобного рода методов.
Судить о скорости работы практических реализаций стандарта пока рано – количество таких реализаций на сегодняшний день очень невелико. Тем не менее можно сказать, что, как и ожидалось, новый стандарт несколько медленнее своего предшественника.
Словарь терминов
arithmetic coding – арифметическое кодирование
bandwidth – полоса пропускания; полоса частот
baseline codec – базовая версия кодека
big endian – порядок следования разрядов от старшего к младшему
binary symbol – двоичный символ
bit-plane coding – кодирование битовых плоскостей
bit-rate (bitrate) – скорость битового потока
bit stream (bitstream) – битовый поток
chrominance component – цветовая компонента
cleanup pass – проход, во время которого осуществляется обработка данных, не обработанных во время предыдущих проходов
code-block – блок коэффициентов, подлежащий кодированию
code-block scan – порядок, в котором кодируются коэффициенты в блоке
coding pass – кодовый проход
compression ratio – степень сжатия
computational complexity – вычислительная сложность
context-dependent coding – контекстно-зависимое кодирование
context label – идентификатор контекста
context model – контекстная модель
DCT (discrete cosine transform) – дискретное косинусное преобразование
DWT (discrete wavelet transform) – дискретное вейвлет-преобразование
dead zone quantization – квантование с мертвой зоной
decomposition level – уровень декомпозиции
delimiting marker – разделяющий маркер
digital imagery – оцифрованные изображения
EBCOT (embedding block coding with optimized truncation) – вложенное блочное кодирование с оптимизированным усечением
EZW (embedded zerotree wavelet) – вейвлет-кодирование на основе вложенных нуль-деревьев
embedding principle – принцип вложенности
entropy coding – кодирование с эффективностью, соответствующей энтропии источника
error resilience – устойчивость к ошибкам
filter bank – совокупность параметров фильтра
functional marker – функциональный маркер
ICT (irreversible component transform) – необратимое преобразование компонентов
ISO (International Organization for Standardization) – международная организация по стандартизации
ITU-T (International Telecommunication Union – Telecommunication Standardization
Sector) – международный телекоммуникационный союз, сектор стандартизации телекоммуникаций
image component – компонента изображения (как правило, цветовая)
image flipping – переворот изображения
image rotation – поворот изображения
irreversible transform – необратимое преобразование
in bit stream marker – маркер, встроенный в битовый поток
inter(-)band dependency – зависимость между диапазонами
inter(-)component transform – межкомпонентное преобразование
interleaving – расслоение; чередование
inverse transformation – обратное преобразование
JPEG (joint photographic experts group) – объединенная группа экспертов по фотоизображениям
L-level dyadic wavelet transform