Скачиваний:
36
Добавлен:
01.05.2014
Размер:
130.12 Кб
Скачать

Проблемы и перспективы развития средств защиты информации 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

Соседние файлы в папке book