М И Н И СТ Е РСТ В О О БРА ЗО В А Н И Я РО ССИ Й СК О Й Ф Е Д Е РА Ц И И В О РО Н Е Ж СК И Й ГО СУ Д А РСТ В Е Н Н Ы Й У...
17 downloads
247 Views
345KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
М И Н И СТ Е РСТ В О О БРА ЗО В А Н И Я РО ССИ Й СК О Й Ф Е Д Е РА Ц И И В О РО Н Е Ж СК И Й ГО СУ Д А РСТ В Е Н Н Ы Й У Н И В Е РСИ Т Е Т Ф акультетп рикладной математикиимеханики К а ф едр а т ехн и ческой ки бер н ет и ки и а вт ом а т и ческого р егу ли р ова н и я
П р ог р ам м н ы е м ет од ы з ащ ит ы ин ф ор м ации. Ч аст ь 1. М етодическиеуказания к сп ец курсу « Т еоретическиеоснов ы защ иты инф ормац ии» для студентов 4 курсаднев ного и5 курсав ечернего отделений ф акультетаП М М
Составитель К ры ж анов ская Ю .А .
В оронеж , 2002
2
В ведени е Т ехнология защ иты инф ормац ионны х систем началаразв ив аться относительно недавно, но сегодня уж е сущ еств ует значительное число теоретических моделей, п озв оляю щ их оп исы в ать п рактическив се асп екты безоп асностииобесп ечив ать средств азащ иты ф ормально п одтв ерж денной алгоритмической базой. В се сущ еств ую щ ие теоретическиеразработкиоснов аны наразличны х п одходах к п роблеме обесп ечения безоп асности, в следств ие чего п редлагаемы е имип останов ки задачиобесп ечения безоп асностииметоды еереш ения сущ еств енно различаю тся. Н аибольш ее разв итие п олучилидв ап одхода, каж ды й изкоторы х основ ан насвоем в идениип роблемы безоп асностиинац елен нареш ениеоп ределенны х задач — это ф ормальное моделиров ание п олитикибезоп асности икрип тограф ия. П ричем этиразличны е п о п роисхож дению иреш аемы м задачам п одходы доп олняю тдруг друга: крип тограф ия мож ет п редлож ить конкретны е методы защ иты инф ормац ии в в иде алгоритмов идентиф икац ии, аутентиф икац ии, ш иф ров ания иконтроля ц елостности, аф ормальны е моделибезоп асностип редоставляю т разработчикам защ ищ енны х систем основ оп олагаю щ ие п ринц ип ы , которы е леж ат в основ е архитектуры защ ищ енной системы иоп ределяю тконц еп ц ию ееп остроения. Д анная часть методических указаний содерж ит краткий обзор наиболее расп ространенны х крип тограф ических методов защ иты : методы кодиров ания исимметричного ш иф ров ания. В о в торой частибудут рассматрив аться асимметричны е алгоритмы ш иф ров ания и крип тограф ические методы идентиф икац ии, аутентиф икац иииконтроля ц елостности, атакж е будетдан обзор наиболее расп ространенны х моделей безоп асности. П рисозданииданны х методических указаний неставилось задачей п олноеизлож ениематематической теории. М етодические указания носят п рактический характер ип редназначены для студентов 4 курсад/о и5 курсав /о ф акультетап рикладной математикиимеханики В ГУ . О ни п редоставляю т доп олнительны й материал п ри п ров едении лабораторного п рактикумап о п рограмме с/к « Т еоретические основ ы защ иты инф ормац ии». М атериал излагается сисп ользов анием п римеров реализац иинекоторы х из рассматрив аемы х алгоритмов . Д ля изучения алгоритмов идентиф икац ии/аутентиф икац ии могут бы ть рекомендов аны книги[1-3]. П остроение различны х в ариантов реализац иип олитики безоп асностимож но изучать сисп ользов анием [2-4]. В [2,4] такж е оп исаны симметричны е и несимметричны е алгоритмы ш иф ров ания. П ри рассмотренииметодов кодиров ания иш иф ров ания мож но исп ользов ать источник [4]. П риизучении методов архив ац иирекомендуется исп ользов ать [5-7].
П р ог р а м м ны е м етоды за щ и ты данны х К ак изв естно, одним из клю чев ы х в оп росов обесп ечения безоп асности инф ормац ии, хранимой иобрабаты в аемой в инф ормац ионны х системах, атакж е п ередаваемой п о линиям связи(для п ростоты далееп о тексту будем гов орить п росто об инф ормац ии), яв ляется защ итаее от несанкц иониров анного доступ а. Д ля за-
3
щ иты инф ормац иип рименяю тся различны е меры исп особы , начиная сорганизац ионно-реж имны х и заканчив ая п рименением слож ны х п рограммно-ап п аратны х комп лексов . В озмож ность исп ользов ания п ерсональны х комп ью теров в локальны х сетях (п рисоп ряж енииих сдругимиП К ) илип рименение модемов для обменаинф ормац ией п о телеф онны м п ров одам п редъяв ляет более ж есткие требов ания к п рограммному обесп ечению п о защ ите инф ормац ии П К . П отребители П К в различны х организац иях для обменаинф ормац ией в се ш ире исп ользую т электронную п очту, которая без доп олнительны х средств защ иты мож ет стать достоянием п осторонних лиц .
К р и птог р а ф и ч ес ки е м етоды за щ и ты данны х К роме п олитикибезоп асности, моделей уп равления доступ ом иконтроля за его осущ еств лением следует отметить ещ е один асп ект п остроения защ ищ енны х систем. О дним из п утей реш ения п роблемы защ иты инф ормац ии, аточнее - реш ения небольш ой частив оп росов изв сего сп ектрамер защ иты , яв ляется крип тограф ическоеп реобразов аниеинф ормац ии, илиш иф ров ание. Д ейств ительно, создание защ ищ енной системы нев озмож но безп рименения крип тограф ических методов , п редоставляю щ их в расп оряж ение разработчика средств а, обесп ечив аю щ ие оп ределенны е гарантиистеп енизащ иты . П рип остроении защ ищ енны х комп ью терны х систем роль крип тограф ических методов для реш ения различны х задач инф ормац ионной безоп асноститрудно п ереоц енить. К рип тограф ические методы защ иты инф ормац ии- это сп ец иальны е методы ш иф ров ания, кодиров ания или иного п реобразов ания инф ормац ии, в результате которого ее содерж ание станов ится недоступ ны м без п редъяв ления клю чакрип тограммы иобратного п реобразов ания. К рип тограф ические методы в настоящ ее в ремя яв ляю тся базов ы ми для обесп ечения надеж ной аутентиф икац ии сторон инф ормац ионного обмена, для защ иты инф ормац ии в трансп ортной п одсистеме в ы числительны х систем, для п одтв ерж дения ц елостности объектов и т.д. К средств ам крип тограф ической защ иты инф ормац ии относятся ап п аратны е, п рограммно-ап п аратны е и п рограммны е средств а, реализую щ ие крип тограф ические алгоритмы п реобразов ания инф ормац иисц елью : • защ иты инф ормац иип риееобработке, храненииип ередаче; • обесп ечения достов ерности и ц елостности инф ормац ии (в том числе сисп ользов анием алгоритмов электронной ц иф ров ой п одп иси) п риее обработке, храненииип ередачеп о трансп ортной средекомп ью терной системы ; • в ы работки инф ормац ии, исп ользуемой для идентиф икац ии и аутентиф икац иисубъектов , п ользов ателей иустройств ; • в ы работки инф ормац ии, исп ользуемой для защ иты аутентиф иц ирую щ их элементов защ ищ енной системе п ри их в ы работке, хранении, обработке и п ередаче. П редп олагается, что СК ЗИ исп ользую тся в некоторой комп ью терной системе (в ряде источников – инф ормац ионно - телекоммуникац ионной системе или
4
сети связи), сов местно смеханизмами реализац ии и гарантиров ания некоторой п олитикибезоп асности. В случае п рименения ш иф ров ания легальны й п ользов атель п олучаетдоступ к закры ты м данны м только п утем их расш иф ров ы в ания. П олучение доступ ак заш иф ров анны м данны м п олностью теряетсмы сл, еслиалгоритм исп особы осущ еств ления ш иф ров ания неизв естны . К рип тограф ический метод защ иты , безуслов но, самы й надеж ны й метод защ иты , так как охраняется неп осредств енно самаинф ормац ия, ане доступ к ней (нап ример, заш иф ров анны й ф айл нельзя п рочесть даж е в случаекраж иносителя). Д анны й метод защ иты реализуется в в иде п рограмм илип акетов п рограмм, расш иряю щ их в озмож ности стандартной оп ерац ионной системы . Защ итанауров не оп ерац ионной системы , чащ е в сего, долж надоп олняться средств ами защ иты на уров не систем уп равления базами данны х, которы е п озв оляю т реализов ы в ать слож ны еп роц едуры уп равления доступ ом. Н адеж ность различны х алгоритмов ш иф ров ания мож ет сущ еств енно разниться, различается истеп ень надеж ностисистем крип тограф ической защ иты , п остроенны х наоснов е этих алгоритмов . И х работаоп ределяется сп ец иальны м уникальны м числом или п оследов ательностью битов , которую назы в аю т клю чом ш иф ров ания. П риэтом в серьезны х системах крип тограф ической защ иты инф ормац ии п редусматрив ается сп ец иальная клю чев ая служ ба, которая долж нагарантиров ать надеж ность создания, п ередачи, смены и ф изического расп ределения клю чей. О днако даж е исп ользов ание систем крип тограф ической защ иты , п остроенны х наоснов е стойких алгоритмов , само п о себе ещ е не гарантирует надеж ной защ иты . Н аряду сразработкой и исп ользов анием таких алгоритмов необходимо исп ользов ание надеж ны х п ротоколов (п равил), регламентирую щ их исп ользов ание этих алгоритмов исп особны х обесп ечить заданную крип тостойкость. Сов ременная крип тограф ия знает дв атип акрип тограф ических алгоритмов : классические алгоритмы , основ анны е на исп ользов ании закры ты х, секретны х клю чей, иалгоритмы соткры ты м клю чом, в которы х исп ользую тся один откры ты й иодин закры ты й клю ч (этиалгоритмы назы в аю тся такж е асимметричны ми). К роме того, сущ еств ует в озмож ность ш иф ров ания инф ормац иииболее п росты м сп особом - сисп ользов анием генераторап сев дослучайны х чисел. Рассмотрим некоторы еметоды симметричного ш иф ров ания. Сначалап оясним ряд терминов , которы ебудутнеоднократно исп ользов аться. К р и птог р а ф и я (отгреческих слов kryptos - тайны й иgrapho - п иш у) - множ еств о отображ ений п ространств а в озмож ны х сообщ ений в п ространств о в озмож ны х крип тограмм. К аж дое конкретное отображ ение изэтого множ еств асоотв етств ует ш иф ров анию п рип омощ иконкретного клю ча. И с ходное с ообщ ени е (откры ты й текст) - сообщ ение, текст которого необходимо сделать неп онятны м для п осторонних. Ш и ф р ова ни е да нны х - п роц ессп реобразов ания откры ты х данны х в заш иф ров анны еданны е(ш иф ртекст, крип тограмму) п рип омощ и ш иф ра.
5
В результате ш иф ров ания объем исходного текстамож етв озрасти, остаться без изменения, сократиться. В том случае, если заш иф ров анны й текст занимает меньш ий объем, чем исходны й, п ринято гов орить об а р хи ва ци и да нны х. Ш и ф р - сов окуп ность обратимы х п реобразов аний множ еств ав озмож ны х откры ты х данны х в о множ еств о в озмож ны х ш иф ртекстов , осущ еств ляемы х п о оп ределенны м п равилам сп рименением клю чей. К люч - конкретное секретное состояние некоторого п араметра (п араметров ), обесп ечив аю щ ее в ы бор одного п реобразов ания из сов окуп ности в озмож ны х для исп ользуемого методаш иф ров ания. П ринц ип иально ш иф ров ание не отличается от кодиров ания. В крип тограф ии п од ш иф ров анием п онимается п роц есс, в котором крип тограф ическому п реобразов анию п одв ергается каж ды й симв ол откры того текста, ап од коди р ова ни ем - замену элементов откры того текста(симв олов , комбинац ий симв олов , слов ит.п .) кодами.
М етоды ши ф р ова ни я Средитрадиц ионны х методов ш иф ров ания имею тся дв абазов ы х тип а- п ерестанов ка(transposition) и замена(substitution). Ш иф ры , исп ользую щ ие п ерестанов ку, « п еремеш ив аю т» симв олы сообщ ения п о оп ределенному п равилу. Ш иф р замены замещ ает однисимв олы другими, но сохраняет п орядок их следов ания в сообщ ении. О баметодамогут бы ть дов едены до лю бой степ енислож ности. К роме того, наих основ емож но создать комп лексны й метод, сочетаю щ ий черты каж дого из них. П ояв ление комп ью теров добавило к сущ еств ую щ им дв ум методам ещ е один, назы в аемы й битов ой манип уляц ией (bit manipulation). Э тотметод изменяеткомп ью терноеп редставлениеданны х п о оп ределенному алгоритму. В се этиметоды п риж еланиимогут исп ользов ать клю ч (key). К ак п равило, клю ч п редставляет собой строку симв олов , необходимую для того, чтобы декодиров ать сообщ ение. О днако нестоитп утать клю ч сметодом ш иф ров ания, п оскольку наличие клю чаяв ляется необходимы м, но недостаточны м услов ием усп еш ной расш иф ров ки сообщ ения. К роме знания клю ча, необходимо знать и алгоритм ш иф рац ии. Н азначениеклю часостоитв « п ерсонализац ии» сообщ ения, стем, чтобы п рочитать его моглитолько те, кому оно п редназначено, несмотря нато, что п рименяемы й для ш иф ров ания алгоритм ш ироко изв естен. М етоды за м ены Ш иф р замены п редставляет собой метод ш иф ров ания сообщ ения п утем замены одних симв олов другиминарегулярной основ е. Ш иф ров ание методом замены (п одстанов ки) основ ано наалгебраической оп ерац ии, назы в аемой п одстанов кой. П одстанов кой назы в ается в заимно однозначное отображ ениенекоторого конечного множ еств аМ насебя. Ч исло N элементов этого множ еств аназы в ается степ енью п одстанов ки. П рирода множ еств а M роли не играет, п оэтому мож но считать, что M={1,2,...,N}. В крип тограф ии рассматрив аю тся четы ре тип а п одстанов ки(замены ): моноалф авитная, гомоф оническая, п олиалф авитная ип олиграммная.
6
Д алеев п римерах, где необходимо, будет исп ользов ано кодиров аниебукв русского алф авита, п рив еденное ниж е. Знак "_" означаетп робел. Букв аА Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я _ К од 010203040506070809101112131415161718192021222324252627282930313233 К огдакаж дой букв е алф авита откры того текстаставится в соотв етств ие однабукв аш иф ртекстаизэтого ж еалф авита, то гов орято п рименениим оноа лф а ви тной замены . О бщ ая ф ормула моноалф авитной замены имеетследую щ ий в ид: Yi=k1*Xi+k2(mod N), где уi - i-й симв ол алф авита; k1 иk2 - константы ; Xi - i-й симв ол откры того текста(номер букв ы в алф авите); N - длинаисп ользуемого алф авита. О дной из п ростейш их ф орм ш иф ров ания заменой яв ляется ц иклический сдв иг алф авитанаоп ределенное количеств о симв олов . Н ап ример, если латинский алф авит сдв инуть натри симв ола, то в место abcdefghijklmnopqrstuvwxyz п олучим defghijklmnopqrstuvwxyzabc. О братите в нимание, что букв ы « abc», находив ш иеся в начале алф авита, п ереместились в конец . Ч тобы закодиров ать сообщ ение, п ользуясь этим методом, нуж но п росто заменить нормальны й алф ав итего смещ енной в ерсией. В ы ш еп рив еденны й алгоритм, основ анны й нап остоянном сдв иге алф авита, смож ет обмануть разв е что сов сем неоп ы тного в зломщ ика, п оскольку в зламы в ается исклю чительно п росто. В конц еконц ов , еслиесть в сего 26 в озмож ны х в ариантов сдв ига, то в се их мож но п еребрать засравнительно короткое в ремя в ручную . Л учш им в ариантом, п о сравнению сп ерв ы м яв ляется исп ользов аниенеуп орядоченного алф авита, ане п росто сдв ига. Е щ е одним недостатком методап ростого п остоянного сдв игаяв ляется то, что сохраняю тся насвоих местах п робелы меж ду слов ами. Э то ещ е более уп рощ ает задачу в зломщ ика, п оэтому п робелы такж е следует кодиров ать (ещ е лучш е будет кодиров ать и знаки п реп инания). Н ап ример, мож но задать такое соотв етств ие строк: однасодерж ит уп орядоченны й алф авит, ав торая, задаю щ ая п реобразов ание, - его рандомизиров анную в ерсию . Д ает ли этарандомизиров анная в ерсия сущ еств енное улучш ение п о сравнению сп реды дущ ей в ерсией, исп ользов авш ей п ростой п остоянны й сдв иг? О тв ет будет утв ердительны м, так как теп ерь имеется 26! сп особов уп орядочив ания алф авита, асучетом п робелаэто число в озрастетдо 27!. Ш иф р, задаваемы й ф оpмулой: yi=xi+ki(mod N), где ki - i-ая букв аклю ча, в качеств е которого исп ользую тся слов о илиф раза, назы в ается ш и ф ром В и ж и н е ра . Ш и ф ры Б оф ора исп ользую т ф оpмулы : уi=ki-xi(mod n) и yi=xi-ki(mod n). П ример 1. О ткры ты й текст: "ЗА М Е Н А ". К лю ч: "К Л Ю Ч ".
7
y1=8+11(mod 33)=19 -> Т y2=1+12(mod 33)=13 -> М у3=13+31(mod ЗЗ)=11-> К y4=6+24(mod 33)=30 -> Э у5=14+11(mod 33)=25 -> Ш y6=1+12(mod 33)=13 -> М . Ш иф ртекст: "Т М К Э Ш М ". О снов ны м недостатком рассмотренного методаяв ляется то, что статистические свойств а откры того текста (частоты п ов торения букв ) сохраняю тся в ш иф ртексте. Д аж е улучш енны й алгоритм ш иф ров ания заменой (сисп ользов анием рандомизиров анной в ерсии алф авита) мож ет бы ть слегкостью в зломан п ри исп ользов аниичастотны х таблиц английского язы ка, в которы х содерж ится частотная инф ормац ия п о каж дой букв еалф авита. Д алее, чем больш еобъем кодиров анного сообщ ения, тем п рощ ерасш иф ров ать его сп омощ ью частотны х таблиц . Г ом оф они ч ес ка я заменаодному симв олу откры того текста ставит в соотв етств ие несколько симв олов ш иф ртекста. Э тот метод п рименяется для искаж ения статистических свойств ш иф ртекста. П ример 2. О ткры ты й текст: "ЗА М Е Н А ". П одстанов казаданатак: А лф авитоткры того текста: А Б ... Е Ж З ... М Н ... 17 23 … 97 47 76 … 32 55 А лф авитш иф pтекста: 31 44 … 51 67 19 … 28 84 48 63 … 15 33 59 … 61 34 Ш иф ртекст: "76 17 32 97 55 31". П ри гомоф онической замене каж дая букв аоткры того текстазаменяется п о очереди ц иф рами соотв етств ую щ его столбц а. В озмож ен идругой в ариант. П ример 3. « ЗА Щ И Т А О Т К О П И РО В А Н И Я И Н СД !» Си м волы Ча с тота Результа т З 1 А А 3 б,в ,г Щ 1 Д И 4 Е ,ж ,з,и Т 2 к,л П РО БЕ Л 4 М ,н,о,п О 3 р,с,т К 1 У П 1 Ф Р 1 Х В 1 Ц Н 2 Ч ,ш Я 1 Щ « 1 Э » 1 Ю Д 1 Я ! 1 А
8
Ч тобы замедлить п роц ессрасш иф ров ки сообщ ения в зломщ иком, п рименяю щ им частотны етаблиц ы , мож но в осп ользов аться ш иф ром смнож еств енны ми заменами(multiple substitution cipher). П ри исп ользов ании ш иф ров ания с множ еств енны ми заменами в зломать ш иф р сп омощ ью частотны х таблиц станов ится намного слож нее. С п омощ ью нескольких рандомизиров анны х алф авитов исов ерш енного механизмап ереклю чения меж ду ними мож но добиться п остроения такого алгоритма, в результате п рименения которого в се алф авитны е симв олы будут п ояв ляться содинаков ой частотой. Э тот в ариант удобен для комп ью терной обработки текстов ы х данны х в силу достаточной избы точности байтап о отнош ению к лю бому изалф авитов естеств енного язы ка. П рив зломе такого алгоритмачастотны етаблиц ы язы кабудутп рактическибесп олезны . Э тотметод ш иф ров ания хорош для текстов естеств енны х язы ков . О днако ш иф ров ание дв оичны х ф айлов , нап ример, граф ических ш риф тов или исп олняемы х модулей, где каж ды й бит байтаимеет ф ункц иональную нагрузку и отсутств ует избы точность, табличны й п одход неудобен. П оли а ф а ви тна я п одстанов ка исп ользует несколько алф авитов ш иф ртекста. П усть исп ользуется k алф авитов . Т огдаоткры ты й текст: Х =X1X 2...Xk Xk+1...X2k X 2k+1... заменяется ш иф ртекстом: Y=F1(X1)F2(X2)...Fk(Xk) F1(Xk+1)...Fk(X2k) F1(X2k+1)... где Fi(Xj) означаетсимв ол ш иф ртекста алф авита i для симв олаоткры того текстаXj. П ример 4. О ткры ты й текст: "ЗА М Е Н А ", k=3. П одстанов казаданатаблиц ей изп римера2. Ш иф ртекст: "76 31 61 97 84 48". П оли г р а м м на я заменаф ормируется изодного алф авитас п омощ ью сп ец иальны х п равил. В качеств еп римерарассмотрим ш иф р П лэйф ера. В этом ш иф ре алф авит расп олагается в матриц е. О ткры ты й текстразбив ается на п ары симв олов XiXi+1. К аж дая п ара симв олов откры того текстазаменяется п арой симв олов изматриц ы следую щ им образом: 1) еслисимв олы находятся в одной строке, то каж ды й изсимв олов п ары заменяется стоящ им п равее его симв олом (зап оследним симв олом в строке следуетп ерв ы й); 2) еслисимв олы находятся в одном столбц е, то каж ды й симв ол п ары заменяется симв олом, расп олож енны м ниж е его в столбц е (зап оследним ниж ним симв олом следуетв ерхний); 3) еслисимв олы п ары находятся в разны х строках истолбц ах, то онисчитаю тся п ротив оп олож ны миугламип рямоугольника. Симв ол, находящ ийся в лев ом углу, заменяется симв олом, стоящ им в другом лев ом углу; заменасимв ола, находящ егося в п равом углу, осущ еств ляется аналогично; 4) еслив откры том тексте в стречаю тся дв аодинаков ы х симв олап одряд, то п еред ш иф ров анием меж ду нимив ставляется сп ец иальны й симв ол. П ример 5. О ткры ты й текст: "Ш И Ф Р_П Л Э Й Ф Е РА ". М атриц а алф авита п редставленав таблиц е:
9
А Х Б М Ц В Ч Г Н Ш Д О Е Щ , Х У П . З Ъ Р И Й С Ь К Э Т Л Ю Я _ Ы Ф Ш иф ртекст: "РД Ы И ,-СТ -И .Х Ч С" П ри рассмотрении этих в идов ш иф ров станов ится очев идны м, что чем больш е длинаклю ча(нап ример, в ш иф ре В иж енера), тем лучш е ш иф р. Сущ еств енного улучш ения свойств ш иф ртекстамож но достигнуть п риисп ользов ании ш иф ров савтоклю чом. Ш иф р, в котором сам откры ты й текст или п олучаю щ аяся крип тограммаисп ользую тся в качеств е "клю ча", назы в ается ши ф р ом с а втоключ ом . Ш иф ров ание в этом случае начинается с клю ча, назы в аемого п ерв ичны м, и п родолж ается сп омощ ью откры того текстаили крип тограммы , смещ енной на длину п ерв ичного клю ча. П ример 6. О ткры ты й текст: "Ш И Ф РО В А Н И Е _ЗА М Е Н О Й ". П ерв ичны й клю ч: "К Л Ю Ч " Схемаш иф ров ания с автоклю чом п ри исп ользов ании откры того текстатаков а: Ш И Ф Р О В А Н И Е _ З А М Е Н О Й К Л Ю Ч Ш И Ф Р О В А Н И Е _ З А М 36 21 52 41 40 12 22 31 24 09 34 22 10 19 39 22 16 23 В Ф Т З Ж Л Х Ю Ч И А Х Й Т Е Х П Ц Схемаш иф ров ания савтоклю чом п риисп ользов ании крип тограммы : Ш И Ф Р О В А Н И Е _ З А М Е Н О Й К Л Ю Ч В Ф Т З СЧ У Х Ъ Э У Э Ы Й 36 21 52 41 18 24 20 22 27 30 53 30 24 43 26 44 39 20 В Ф Т З C Ч У Х Ъ Э У Э Ы Й Щ К Й У М етоды пер ес та новки П риисп ользов аниидля ш иф ров ания данны х методов п ерестанов кисимв олы откры того текста п ереставляю тся в соотв етств ии снекоторы мип равилами. О собенно удобны этиметоды для ш иф ров ания/расш иф ров ания дв оичны х ф айлов : граф ических ш риф тов , исп олняемы х модулей ит.д. П риразмереф айлав N байтобщ еечисло п ерестанов ок мож етсоставить N! . К роме того, этот метод яв ляется одним из самы х лучш их п о в ременному критерию . В случае защ иту исп олняемы х модулей сов ерш енно излиш не п ереставлять каж ды й байт - достаточно сделать несколько п ерестанов ок в клю чев ы х местах п рограммного изделия, что п озв олит резко сократить в ремя расш иф ров ания п еред в ы п олнением. П ример 7. О ткры ты й текст: "Ш И Ф РО В А Н И Е _П Е РЕ СТ А Н О В К О Й ". К лю ч (п равило п ерестанов ки): груп п ы из8 букв с п орядков ы ми номерами1.2.....8 п ереставить в п орядок 3-8-1-5-2-7-6-4. Ш иф ртекст: "Ф Н Ш О И А В Р_СИ Е Е Е РП Н Н Т В А О К О ".
10
М ож но исп ользов ать и услож ненную п ерестанов ку. Д ля этого откры ты й текст зап исы в ается в матриц у п о оп ределенному клю чу k1. Ш иф ртекст образуется п рисчиты в анииизэтой матриц ы п о клю чу k2. П ример 8. О ткры ты й текст: "Ш И Ф РО В А Н И Е _П Е РЕ СТ А Н О В К О Й ". М атриц аизчеты рех столбц ов : К лю чи: k1 5-3-1-2-4-6; k2 4-2-3-1. K1/k2 1 2 3 4 И Е _ П 1 Е Р Е С 2 О В А Н 3 Т А Н О 4 Ш И Ф Р 5 В К О Й 6 Зап ись п о строкам осущ еств ляется в соотв етств иисклю чом k1, ачтениеп о столбц ам - в соотв етств иисклю чом k2 Ш иф ртекст: "П СН О РЙ Е РВ А И К _Е А Н Ф О И Е О Т Ш В ". Н аиболее слож ны е п ерестанов ки осущ еств ляю тся п о гамильтонов ы м п утям, которы х в граф е мож ет бы ть несколько. П оследов ательность зап олнения граф акаж ды й разсоотв етств уетнумерац ииего элементов . В ы боркадля каж дого зап олнения мож ет в ы п олняться п о своему марш руту, п риэтом марш руты могут исп ользов аться как п оследов ательно, так ив п орядке, задаваемом клю чом. П оба йтны е а лг ор и тм ы ши ф р ова ни я К аж ды й следую щ ий байт ш иф руется п утем суммиров ания сп реды дущ им байтом. В п рактической реализац иив озмож ны различны е модиф икац ииданного алгоритма, нап ример, к текущ ему значению ш иф руемого байтадобавляется содерж имое не п реды дущ его байта, аотстоящ его от него наk байт. В "чистом" в иде данны й алгоритм яв ляется очень нестойким и это п онятно - заш иф ров анное сообщ ение в сесодерж итв себеклю ч. П о аналогиисж изнью данная ситуац ия нап оминает следую щ ую : дв ерь закры танаклю ч, асам клю ч леж ит тут ж е п еред дв ерью п од ков риком. М етодби товы х м а ни пуляци й М етоды ш иф ров ания, п рив одимы е ранее, п редставляю т собой комп ью теризиров анны е в ерсии ш иф ров ания, ранее в ы п олняв ш егося в ручную . О днако комп ью терны е технологии далиначало нов ому методу кодиров ания сообщ ений п утем манип уляц ий сбитами, составляю щ ими ф актические симв олы неш иф ров анного сообщ ения. К ак п равило, сов ременны е комп ью теризиров анны е ш иф ры п оп адаю т в класс, назы в аемы й ш иф рамибы тов ы х манип уляц ий (bit manipulating ciphers). Х отя рев нителичистоты теориимогут сп орить о том, что такие ш иф ры п редставляю т собой п росто в ариац ию ш иф ров методом замены , больш инств о сп ец иалистов соглаш ается стем, что конц еп ц ии и методы , леж ащ ие в основ е ш иф ров битов ы х манип уляц ий, отличаю тся от в сего, что бы ло изв естно ранее, настолько значительно, что заслуж ив аю тв ы деления в особы й класс. Ш иф ры битов ы х манип уляц ий п оп улярны п о дв ум п ричинам. В о-п ерв ы х, они идеально п одходят для исп ользов ания в комп ью терной крип тограф ии, так
11
как исп ользую т оп ерац ии, которы е легко в ы п олняю тся системой. В торая п ричиназаклю чается в том, что п олученны й нав ы ходезаш иф ров анны й текств ы глядит абсолю тно нечитаемы м - ф актически п олной бессмы слиц ей. Э то п олож ительно сказы в ается набезоп асностиизащ ищ енности, так как в аж ны е данны е маскирую тся п од п ов реж денны еф айлы , доступ к которы м п росто никому ненуж ен. Ш иф ры битов ы х манип уляц ий п рименимы только к комп ью терны м ф айлам и не могут исп ользов аться для бумаж ны х коп ий заш иф ров анны х сообщ ений. П ричинаэтого заклю чается в том, что манип уляц иисбитамиимею т тенденц ию генериров ать неп ечатаемы е симв олы . П оэтому в сегдабудем п олагать, что текст, заш иф ров анны й сп омощ ью битов ы х манип уляц ий, в сегдабудетоставаться в в идеэлектронного документа. Ш иф ры битов ы х манип уляц ий п ерев одятоткры ты й текств ш иф ров анны й с п омощ ью п реобразов ания наборабит каж дого симв олап о оп ределенному алгоритму, исп ользуя одну изследую щ их логических оп ерац ий илиих комбинац ию : AND, OR, NOT, XOR. П ростейш ий (инаименее защ ищ енны й) ш иф р, манип улирую щ ий сбитами, исп ользует только оп ератор п ерв ого доп олнения. Э тот оп ератор инв ертируетв се биты , в ходящ иев состав байта. Т аким образом, в сенулистанов ятся единиц амии наоборот. П оэтому байт, над которы м дв аж ды п ров еденатакая оп ерац ия, п ринимаетисходноезначение. В действ ительности сэтой п ростой схемой кодиров ания связаны дв е основ ны е п роблемы . В о-п ерв ы х, п рограммаш иф ров ания для расш иф ров китекста не исп ользует клю ча. П оэтому лю бой, кто знает, что исп ользуется данны й алгоритм ив состояниинап исать п рограмму, смож ет п рочитать ф айл. В о-в торы х (и это самоеглавное), этотметод отню дь нетайнадля оп ы тны х п рограммистов . У лучш енны й метод ш иф ров ания методом п обитов ой манип уляц ииисп ользует оп ератор XOR - результат в ы п олнения оп ератораXOR п олучает значение И СТ И Н А тогдаитолько тогда, когдаодин изоп ерандов имеет значение И СТ И Н А , адругой - Л О Ж Ь. И менно это ияв ляется уникальны м свойств ом оп ератора XOR - еслив ы п олнить эту оп ерац ию над одним байтом, исп ользуя другой байтв качеств е « клю ча», азатем в ы п олнить над результатом ту ж е самую оп ерац ию с п омощ ью того ж есамого клю ча, то снов ап олучится исходны й байт. Н ап ример: 11011001 И сходны й байт К лю ч XOR 01010011 (клю ч) Заш иф ров анны й байт 10001010 К лю ч XOR 01010011 (клю ч) Расш иф ров анны й байт 11011001 Э тот п роц ессмож ет исп ользов аться для кодиров ания ф айлов , так как он реш ает дв е основ ны е п роблемы сп ростейш ей в ерсией набазе п ерв ого доп олнения. В о-п ерв ы х, благодаря исп ользов анию клю ча, расш иф ров ать ф айл, имея только п рограмму декодиров ания, нельзя. В о-в торы х, исп ользуемы е манип уляц иисбитаминенастолько п росты , чтобы их мож но бы ло сразу расп ознать. К лю ч не обязательно долж ен иметь длину 1 байт. Ф актически, мож но исп ользов ать клю ч, состоящ ий изнескольких симв олов , ичередов ать этисимв олы нап ротяж ениив сего ф айла.
12
К оди р овоч на я кни г а К аж дому заш иф ров ы в аемому слов у ставится в соотв етств ие месторасп олож ение этого слов а, нап ример, в худож еств енной книге, один экземп ляр которой находится у того, ктo ш иф рует, другой - у того, кто расш иф ров ы в ает. Н аиболее слабы м зв еном метода"кодиров очной книги" яв ляется самаэта книга, аименно необходимость ее п остоянного наличия у в сех работаю щ их с ш иф ров анны ми текстами. В случае п оп адания книгик в рагу в месте синф ормац ией о ееназначениив сесообщ ения станов ятся изв естны минеп риятелю . В п рименении к комп ью терной обработке инф ормац ии метод "кодиров очной книги" мож но в идоизменить, рассматрив ая в качеств е "кодиров очной книги" коды П ЗУ комп ью тера, коды оп ерац ионной системы или коды какоголибо п акета п рограмм, исп ользуемого как п ередаю щ ей, так ип олучаю щ ей стороной. В этом случае коду каж дого симв ола, п ринадлеж ащ ему заш иф ров ы в аемому тексту, ставится в соотв етств ие месторасп олож ение точно такого ж е кодав П ЗУ иликакой-либо заранее огов оренной п рограмме. П риэтом рекомендуется не исп ользов ать дв аж ды значение одной итой ж е п озиц иикодасимв ола. К роме того, для услож нения работы п отенц иального злоумы ш ленникав сегда мож но добавлять к значению п озиц иикодасимв олав кодиров очной книге какое-либо ф иксиров анное смещ ение, яв ляю щ ееся исходны м п аролем. М етоды а на ли ти ч ес ки х пр еобр а зова ни й Ш иф ров ание методамианалитических п реобразов аний основ ано нап онятии односторонней ф ункц ии. Ф ункц ия у =f(х) яв ляется односторонней, если она засравнительно небольш ое число оп ерац ий п реобразует элемент откры того текстах в элементш иф ртекстау для в сех значений х из области оп ределения, а обратная оп ерац ия (в ы числение x=F-1(y) п ри изв естном ш иф ртексте) яв ляется в ы числительно трудоемкой. В качеств е односторонней ф ункц ии мож но исп ользов ать следую щ ие п реобразов ания: 1) умнож ениематриц ; 2) реш ениезадачиоб укладкеранц а; 3) в ы числениезначения п олиномап о модулю ; 4) эксп оненц иальны еп реобразов ания идругие. М етодум нож ени я м а тр и ц исп ользуетп реобразов аниев ида: Y=CX, где Y=||y1,y2, ...,yn||Т - ш иф ртекст; С=||Cij|| - матриц аш иф ров ания; X=||x1,x2, ...,xn|| - откры ты й текст. За да ч а обукла дке р а нца ф ормулируется следую щ им образом. Задан в ектор С=|c1,c2,...,cn|, которы й исп ользуется для ш иф ров ания сообщ ения, каж ды й симв ол si которого п редставлен п оследов ательностью из n бит si=|x1,x2,...,xn|, хk∈{0,1}. Ш иф ртекстп олучается как скалярноеп роизв едениеС⋅si. П ример 9. О ткры ты й текст: "П РИ К А З" ("16 17 09 11 01 08"). В ектор С={1,3,5,7,11}.
13
Зап иш ем код каж дой букв ы откры того текста в дв оичном в иде, исп ользуя п ять разрядов . П Р И К А З 10000 10001 01001 01011 00001 01000 П роизв едем соотв етств ую щ иеоп ерац ии: y1=1⋅1+ 0⋅3+0⋅5+0⋅7+0⋅11=1 y2=1⋅1+1⋅11=12 y3=1⋅3+1⋅11=14 y4=1⋅3+1⋅7+1⋅11=21 у5=1⋅11=11 y6=1⋅3=3. Ш иф ртекст: "01 12 14 21 11 03". М етод поли ном ов основ ан нап реобразов ании: yi=xn+a1⋅xn-1+...+an⋅x0(mod р), где n, a1, a2... an - ц елы енеотриц ательны ечисла, неп рев осходящ иер, р - больш ое п ростоечисло; 1≤хi,уi≤р. Экс поненци а льны й ши ф р исп ользует п реобразов ание в ида: уi =axi (mod р), гдехi - ц елое, 1≤хi≤р-1; p - больш оеп ростоечисло; a - ц елое, 1≤a≤p. Г а м м и р ова ни е О собы м случаем аналитических п реобразов аний яв ляется метод, основ анны й нап реобразов аниив ида: yi=xi ++ hi, гдеуi - i-й симв ол ш иф ртекста; хi - i-й симв ол откры того текста; hi - i-й симв ол гаммы ; ++ - в ы п олняемая оп ерац ия (налож ениегаммы ). Различаю т дв аслучая: метод конечной гаммы иметод бесконечной гаммы . В качеств е конечной гаммы мож ет исп ользов аться ф раза, ав качеств е бесконечной - п оследов ательность, в ы рабаты в аемая датчиком п сев дослучайны х чисел. П ример 10. О ткры ты й текст: "П РИ К А З" ("16 17 09 11 01 08"). Гамма: "ГА М М А " ("04 01 13 13 01"). О п ерац ия: слож ениеп о mod 33. y1= 16+4(mod 33)=20 y4= 11+13(mod 33)=24 y2= 17+1(mod 33)=18 y5= 1+1(mod 33)=2 y3= 9+13(mod 33)=22 y6= 8+4(mod 33)=12. Ш иф ртекст: "У СХ Ч БЛ " ("20 18 22 24 02 12"). П ример 11. О ткры ты й текст: "П РИ К А З" ("16 17 09 11 01 08"). П ерв ы езначения датчика: "21794567". О п ерац ия: слож ениеп о mod 2. Зап иш ем код каж дой букв ы откры того текста в дв оичном в иде, исп ользуя для этого п ять разрядов , акаж дую ц иф ру гаммы - исп ользуя четы реразряда: 10000 10001 01001 01011 00001 01000 ++ 00100 00101 11100 10100 01010 11001 10100 10100 10101 11111 01011 10001. Ш иф ртекст: "У У Ф Ю К Р".
14
В некоторы х стандартах ш иф ров ания исп ользуется такж е реж им гаммиров ания собратной связью , которы й п охож нареж им гаммиров ания иотличается отнего только тем, что для в ы работкиблокагаммы для ш иф ров ания следую щ его блокаданны х исп ользуется блок ш иф ротекста, п олученны й нап реды дущ ем ш аге. Э тим достигается зац еп ление блоков - каж ды й блок п риш иф ров аниизависит отв сех п реды дущ их. К ом би ни р ова нны е м етоды Н аиболее часто п рименяю тся такие комбинац ии, как п одстанов каигамма, п ерестанов каигамма, п одстанов каип ерестанов ка, гаммаигамма. П римером мож етслуж ить ш иф р Ф рендберга, которы й комбинируетмногоалф авитную п одстанов ку сгенератором п сев дослучайны х чисел, суть алгоритма п оясняется следую щ ей схемой: 1) установ лениеначального состояния генераторап сев дослучайны х чисел; 2) установ лениеначального сп искап одстанов ки; 3) в сесимв олы откры того текстазаш иф ров аны ? 4) еслида- конец работы , еслинет- п родолж ить; 5) осущ еств лениезамены ; 6) генерац ия случайного числа; 7) п ерестанов каместамизнаков в сп искезамены ; 8) п ереход наш аг 4. О собенность данного алгоритмасостоит в том, что п ри больш ом объеме ш иф ртекстачастотны е характеристики симв олов ш иф ртекстаблизкик равномерному расп ределению независимо отсодерж ания откры того текста. П ример 12. О ткры ты й текст: "А БРА К А Д А БРА ". И сп ользуем моноалф авитную замену согласно таблиц е А БД К Р XVNRS П оследов ательность чисел, в ы рабаты в аемая датчиком: 31412543125. 1. у1=Х . П осле п ерестанов ки симв олов исходного алф авитап олучаем таблиц у (h1=3). Д БА К Р XVNRS 2. у2=V. Т аблиц азамены п ослеп ерестанов ки(h2=1) п ринимаетв ид: БД А К Р XVNRS О сущ еств ляя дальнейш ие п реобразов ания в соотв етств ии салгоритмом Ф рендберга, п олучим ш иф ртекст: "XVSNSXXSSSN". П ри составлении комбиниров анны х ш иф ров необходимо учиты в ать, что неп равильны й в ы бор составляв ш их ш иф ров мож ет п рив естик исходному откры тому тексту. П ростейш им п римером служ ит налож ение одной гаммы дв аж ды . Ш и ф р ова ни е с откр ы ты м ключ ом Сущ еств ую т такж е методы , в которы х для ш иф ров ания исп ользуется один клю ч, адля расш иф ров ки - другой. П ри этом сп омощ ью п ерв ого клю чанев оз-
15
мож но расш иф ров ать текст им ж е заш иф ров анны й, асп омощ ью в торого клю ча нев озмож но заш иф ров ать текст, которы й этим клю чом удастся расш иф ров ать. Е стеств енно, что нев озмож но п о одному клю чу оп ределить другой, иначев сеэто п отеряло бы смы сл. Т акая п араклю чей назы в ается откры ты м (т.е. общ едоступ ны м, public) и закры ты м (то есть п ерсональны м, private) клю чами, аметоды , основ анны е нав озмож ности исп ользов ать такую п ару, - ш иф ров анием соткры ты м клю чом. И мея такую п ару клю чей, мож но сов ерш енно сп окойно п ередавать откры ты й клю ч для ш иф ров ания своему п артнеру, которы й сего п омощ ью заш иф рует сообщ ение, и бы ть сов ерш енно сп окойны м засекретность содерж ания этого сообщ ения, так как расш иф ров ать его мож но только сп омощ ью в торого (закры того) клю ча. М етоды ш иф ров ания соткры ты м клю чом будут п одробнее рассмотрены в о в торой частиметодический указаний.
М етоды коди р ова ни я П од кодиров анием п онимается заменаэлементов откры того текста(букв , слов , ф раз и т.п .) кодами. Различаю т симв ольное и смы слов ое кодиров ание. П рисимв ольном кодиров ании каж ды й знак алф авита откры того текстазаменяется соотв етств ую щ им симв олом. П римером симв ольного кодиров ания служ ит азбука М орзе, а такж е методы ш иф ров ания заменой и п ерестанов кой. Рассмотрим метод симв ольного кодиров ания, которы й исп ользует п реды дущ ие симв олы откры того текста(метод стоп кикниг). П редп олож им, что нуж но п ередать сообщ ение X изалф авитаА , в котором букв ы алф авитаотож деств лены счислами1,2,..L, где L - число элементов алф ав итаА . К аж дой букв е алф авита соотв етств уеткод ki, i=1..L. П рип ояв лениив сообщ ении X очередной букв ы хj ее код п редставляется кодом номерап озиц ии j, занимаемой в данны й момент букв ой хj в сп иске. Э то дает в озмож ность нап риемном конц е п о коду номерап озиц ииj оп ределить букв у хj. П осле кодиров ания букв ы хj однов ременно нап риемном ип ередаю щ их конц ах п еремещ аю тбукв у хj в начало сп иска, ув еличив ая тем самы м наединиц у номерабукв , стояв ш их нап озиц иях от 1 до j-1. Н омерабукв , стояв ш их нап озиц иях от j+1 до L, остаю тся без изменений. В результате кодиров ания откры того текстав начале сп иска будут находиться букв ы , которы е наиболее часто в стречались в откры том тексте. П ример 13. О ткры ты й текст: "А БРА К А Д А БРА ". А лф авит: {А ,Б,Д ,К ,Р}. Н ачальны й сп исок соотв етств ует п оследов ательности букв в алф авите и ему соотв етств уетсп исок кодов {К 1,К 2,К З,К 4,К 5}. Схемакодиров ания: К1 А А Б Р А К А Д А Б Р А К2 Б Б А Б Р А К А Д А Б Р К3 Д Д Б А Б Р Р К К Д А Б К4 К К К Д Д Б Б Р Р К Д Д К5 Р Р Р К К Д Д Б Б Р К К коды начальны й сп исок Закодиров анноесообщ ение: "К 1 К 2 К 5 К 3 К 5 К 2 К 5 К 2 К 5 К 5 К 3".
16
См ы с ловое коди р ова ни е - это кодиров ание, в котором в качеств е исходного алф авита исп ользую тся не только отдельны е симв олы (букв ы ), но ислов а идаж енаиболеечасто в стречаю щ иеся ф разы . П ример 14. О ткры ты й текст: "19.9.1992 ГО Д А ". Т аблиц акодиров ания п редставленав таблиц е Элем енты откр ы тог о текс та К оды 1 089 146 214 417 2 187 226 045 361 9 289 023 194 635 ГО Д 031 155 217 473 . 786 432 319 157 Закодиров анноесообщ ениеп римоноалф авитном кодиров ании: "089 289 786 289 786 089 289 289 187 031". Закодиров анное сообщ ение п ри многоалф авитном кодиров ании: "089 289 786 023 432 146 194 635 187 031". М етодр а с с еч ени я-р а знес ени я Сп ец иф икап рименения П Э В М п озв оляет реализов ать доп олнительны е методы кодиров ания для надеж ного закры тия содерж имого ф айлов . П римером такого кодиров ания яв ляется метод рассечения-разнесения, в соотв етств иискоторы м содерж имое одного ф айларазбив ается на блоки, которы е разносятся п о нескольким ф айлам. К аж ды й такой ф айл не несет никакой инф ормац ии, а сбор данны х в единоец елоеосущ еств ляется п ростой п рограммой. П ример 15. Блок (ф айл откры того текста) начинается слов ами: "М Е Т О Д _РА ССЕ Ч Е Н И Я -РА ЗН Е СЕ Н И Я ". Д ля рассечения блока откры того текста на 8 частей зап иш ем откры ты й текств следую щ ем в иде: 1 2 3 4 1 М Е Т О 2 Д _ Р А 1 С С Е Ч 2 Е Н И Я 1 Р А З 2 Н Е С Е 1 Н И Я … Д ля рассечения текстана 8 частей в ы браны 2 строки и 4 столбц а. П усть столбц ы sj в ы бираю тся в п оследов ательности{4,1,3,2}, астрокиri- в п оследов ательности (2,1}. Т огданомер k блокаФ k, кудазап исы в ается очередной симв ол откры того текста, оп ределяется п о ф ормуле: k= (ri-1)n+sj, гдеn - число столбц ов . П ерв ы й симв ол М зап иш ется в блок сномером (ri=2, sj=4): k=(2-1)*4+4=8; в торой симв ол E в блок сномером (ri=2, sj=1): k=(2-1)*4+1=5, ит.д. Т огдаблоки Ф k, зап исанны е в п орядке номеров , будут содерж ать следую щ ие симв олы : Ф 1=(_Н Е ...), Ф 2=(А Я Е ...), Ф 3=(РИ С..,), Ф 4={Д Е Н ...), Ф 5={Е СРИ ...}, Ф 6={О Ч З...), Ф 7={Т Е А Я ...), Ф 8={М С-Н ...}. Т аким образом, один блок откры того
17
текстазаменяется в осемью блоками, которы ев суммедаю тдлину исходного блока.
М етоды а р хи ва ци и Сж атиеинф ормац ии- п роблема, имею щ ая достаточно давню ю историю , гораздо более давню ю , неж елиистория разв ития в ы числительной техники, которая (история) обы чно ш лап араллельно систорией разв ития п роблемы кодиров ания и ш иф ров ания инф ормац ии. П рименительно к комп ью терной обработке инф ормац ииархив ац ия п редставляетсамостоятельны й интерес как сп особ, п озв оляю щ ий ускорить п ередачу данны х или расш ирить в озмож ности комп ью тера п о складиров анию данны х. О снов ны митехническимихарактеристикамип роц ессов сж атия ирезультатов их работы яв ляю тся: - скорость сж атия - в ремя, затрачив аемое насж атие некоторого объемаинф ормац иив ходного п отока, до п олучения изнего экв ив алентного в ы ходного п отока; - в ремя дезархив ац ии; - качеств о сж атия - в еличина, п оказы в аю щ ая насколько сильно уп аков ан в ы ходной п оток, п ри п омощ и п рименения к нему п ов торного сж атия п о этому ж еилииному алгоритму. - коэф ф иц иентсж атия. П од коэф ф иц иентом сж атия будем п онимать отнош ениеобъемов (в битах) исходного текстак сж атому. В сеалгоритмы сж атия данны х качеств енно делятся на: 1. А лгоритмы сж атия безп отерь, п риисп ользов аниикоторы х данны е нап риемной в осстанавлив аю тся безмалейш их изменений. 2. А лгоритмы сж атия сп отерями, которы е удаляю т изп отокаданны х инф ормац ию , незначительно в лияю щ ую насуть данны х, либо в ообщ е не в осп ринимаемую челов еком (такие алгоритмы сейчасразработаны только для аудио- и в идео-изображ ений). В крип тосистемах, нап ример, исп ользуется только п ерв ая груп п аалгоритмов . Сущ еств ует дов ольно много методов архив ац ии без п отерь, но наиболее часто исп ользую тся алгоритмы Х аф ф мана(Huffman) и Л емп еля-Зив а(Lempel, Ziv). А лгоритм Х аф ф манаориентиров ан насж атие п оследов ательностей байт, не связанны х меж ду собой, аалгоритм Л емп еля-Зив ап рименяется для сж атия лю бы х в идов текстов и исп ользует ф акт неоднократного п ов торения "слов " – п оследов ательностей байт. О братимое сж атие в сегдап рив одит к сниж ению объемав ы ходного п отока инф ормац иибез изменения его инф орматив ности, т.е. без п отериинф ормац ионной структуры . Более того, из в ы ходного п отока, п ри п омощ и в осстанавлив аю щ его или декомп рессирую щ его алгоритма, мож но п олучить в ходной, ап роц ессв осстанов ления назы в ается декомп рессией, илирасп аков кой, итолько п ослеп роц ессарасп аков киданны еп ригодны для обработкив соотв етств иисих в нутренним ф орматом. Е сли п рименять такие алгоритмы для сж атия изображ ений, то мож но заметить, что онидостаточно унив ерсальны ип окры в аю т в се тип ы изображ ений, но у
18
них, п о сегодняш ним меркам, слиш ком маленький коэф ф иц иент архив ац ии. И сп ользуя один из алгоритмов сж атия без п отерь, мож но обесп ечить архив ац ию изображ ения п римерно в дв араза. В то ж е в ремя алгоритмы сж атия сп отерями оп ерирую тгораздо больш имикоэф ф иц иентами. Сж атие сп отерямимож но рассматрив ать как необратимое. П од необратимы м сж атием п одразумев аю ттакоеп реобразов аниев ходного п отокаданны х, п ри котором в ы ходной п оток, основ анны й наоп ределенном ф ормате инф ормац ии, п редставляет, снекоторой точкизрения, достаточно п охож ий п о в неш ним характеристикам нав ходной п оток объект, однако отличается отнего объемом. Степ ень сходств ав ходного и в ы ходного п отоков оп ределяется степ енью соотв етств ия некоторы х свойств объекта(т.е. сж атой инесж атой инф ормац иив соотв етств ии снекоторы м оп ределенны м ф орматом данны х), п редставляемого данны м п отоком инф ормац ии. Т акие п одходы и алгоритмы исп ользую тся для сж атия, нап ример, данны х растров ы х граф ических ф айлов снизкой степ енью п ов торяемостибайтов в п отоке. В этом случаеисп ользуется свойств о структуры ф орматаграф ического ф айла и в озмож ность п редставить граф ическую картинку п риблизительно схож ую п о качеств у отображ ения (для в осп риятия челов еческим глазом) несколькими сп особами. П оэтому, кроме степ ениилив еличины сж атия, в таких алгоритмах в озникаетп онятиекачеств а, т.к. исходноеизображ ениев п роц ессесж атия изменяется, то п од качеств ом мож но п онимать степ ень соотв етств ия исходного ирезультирую щ его изображ ения, оц енив аемую субъектив но, исходя из ф орматаинф ормац ии. Д ля граф ических ф айлов такое соотв етств ие оп ределяется в изуально, хотя имею тся исоотв етств ую щ ие интеллектуальны е алгоритмы ип рограммы . Н еобратимое сж атие нев озмож но п рименять в областях, в которы х необходимо иметь точное соотв етств ие инф ормац ионной структуры в ходного и в ы ходного п отоков . Д анны й п одход реализов ан в п оп улярны х ф орматах п редставления в идео и ф ото инф ормац ии, изв естны х как JPEG и GIF алгоритмы и JPG и GIF ф орматы ф айлов . Главны й п ринц ип , леж ащ ий в основ е в сех алгоритмов архив ац ии, - устранить из"сж имаемого" текстаизбы точность. П од избы точностью обы чно п онимаю тся части текста, не несущ ие никакой инф ормац иидля в осп ринимаю щ его объекта. Строго п онятиеизбы точностимож но оп ределить следую щ им образом: Е сли какой-либо текст состоит из знаков , каж ды й из которы х мож ет п ринимать q значений, икаж ды й знак содерж ит Н битов инф ормац ии, то избы точностью текста назы в ается в еличина R = 1 – H / log2 (q). Рассмотрим несколько альтернатив ны х сп особов кодиров ки. Та бли ч на я коди р овка Рассмотрим текст: "ЗА Щ И Т А П РО ГРА М М И Д А Н Н Ы Х О Т Н СД ". П ри размещ ениив оп ератив ной п амятиЭ В М данны й текстзанимает 31 байт. Э то, конечно, только в том случае, если для его кодиров ки исп ользуется стандартная коп иров очная таблиц аASCII. О днако в случае в ы ш еп рив еденного текстап ри стандартной кодиров ке многие биты байтане несут никакой инф ормац ии и, п оп росту гов оря, не исп ользую тся. В исходном тексте 16 различны х симв олов . Значит, для кодиров кикаж дого симв оладостаточно 4 бит. Н ап ример:
19
Си м вол К од З 0000 А 0001 Щ 0010 И 0011 Т 0100 П 0101 Р 0110 О 0111 Г 1000 М 1001 Д 1010 Н 1011 Ы 1100 Х 1101 С 1110 П РО БЕ Л _ 1111 В случае п рименения данной таблиц ы закодиров анны й текст займет в сего 31/2 + 1=16 байт. Э кономия п амятиналиц о, ик тому ж е исходны й текст сп рятан от в изуального п росмотра. О бъем закодиров анного текстамож ет бы ть оп ределен п о ф ормуле: V=b*n, гдеb=log2 (k); k - в сего различны х симв олов в тексте; n - в сего симв олов в тексте. В данном случае коэф ф иц иент сж атия (К С) будет рассчиты в аться п о ф ормуле К С=8*n/n*log2(k). Алг ор и тм Х а ф ф м а на А лгоритм основ ан натом ф акте, что некоторы е симв олы из стандартного 256-симв ольного наборав п роизв ольном текстемогутв стречаться чащ есреднего п ериодап ов тора, адругие, соотв етств енно, – реж е. Следов ательно, еслидля зап иси расп ространенны х симв олов исп ользов ать короткие п оследов ательности бит, длиной меньш е 8, адля зап исиредких симв олов – длинны е, то суммарны й объем ф айлауменьш ится. В данном случае речь будет идти о коде пер ем ен н ой дли н ы, п озв оляю щ ем однозначно в осстанавлив ать исходны й текст. Х аф ф ман п редлож ил очень п ростой алгоритм оп ределения того, какой симв ол необходимо кодиров ать каким кодом для п олучения ф айласдлиной, очень близкой к его энтроп ии (то есть инф ормац ионной насы щ енности). П усть у нас имеется сп исок в сех симв олов , в стречаю щ ихся в исходном тексте, п ричем изв естно количеств о п ояв лений каж дого симв олав нем. В ы п иш ем их в ертикально в ряд в в иде ячеек будущ его граф а. В ы берем дв асимв оласнаименьш им количеств ом п ов торений в тексте (если три или больш ее число симв олов имею т одинаков ы е значения, в ы бираем лю бы е дв аизних). П ров едем отних линиив лев о к нов ой в ерш инеграф аизап иш ем в неезначение, равноесуммечастотп ов торения каж дого изобъединяемы х симв олов . Д алее не будем п ринимать в о в нимание п рип оиске наименьш их частот п ов торения дв аобъединенны х узла(для этого сотрем числав этих дв ух в ерш инах), но будем рассматрив ать нов ую в ерш ину
20
как п олноц енную ячейку счастотой п ояв ления, равной сумме частот п ояв ления дв ух соединив ш ихся в ерш ин. Будем п ов торять оп ерац ию объединения в ерш ин до тех п ор, п окане п ридем к одной в ерш ине счислом. Д ля п ров ерки: очев идно, что в ней будет зап исанадлинакодируемого ф айла. Т еп ерь расставим надв ух ребрах граф а, исходящ их из каж дой в ерш ины , биты 0 и1 п роизв ольно – нап ример, накаж дом в ерхнем ребре 0, анакаж дом ниж нем – 1. Т еп ерь для оп ределения кодакаж дой конкретной букв ы необходимо п росто п ройтиот в ерш ины дерев адо нее, в ы п исы в ая нулииединиц ы п о марш руту следов ания. К од Х аф ф манаяв ляется п реф иксны м, то есть код никакого симв олане яв ляется началом кодакакого-либо другого симв ола. П ров ерьте это нап римере. А изэтого следует, что код Х аф ф манаоднозначно в осстанов им п олучателем, даж е еслинесообщ ается длинакодакаж дого п ереданного симв ола. П олучателю п ересы лаю ттолько дерев о Х аф ф манав комп актном в иде, азатем в ходная п оследов ательность кодов симв олов декодируется им самостоятельно без какой-либо доп олнительной инф ормац ии. Сж имая ф айл п о алгоритму Х аф ф мана, п ерв ое, что нуж но сделать - п рочитать ф айл п олностью и п одсчитать сколько раз в стречается каж ды й симв ол из расш иренного набораASCII. Е слиучиты в ать в се 256 симв олов , то не будет разниц ы в сж атиитекстов ого иEXE ф айла. П осле п одсчетачастоты в хож дения каж дого симв ола, необходимо п росмотреть таблиц у кодов ASCII и сф ормиров ать бинарноедерев о. П ример 16: П усть есть ф айл длиной в 100 байт иимею щ ий 6 различны х симв олов в себе. П одсчитаем в хож дениекаж дого изсимв олов в ф айл ип олучим: A B C D E F Си м вол 10 20 30 5 25 10 Чи с ло вхож дени й Будем назы в ать этичислачастотой в хож дения симв олов ип ров едем сортиров ку: C E B F A D Си м вол 30 25 20 10 10 5 Чи с ло вхож дени й В озьмем изп оследней таблиц ы 2 симв оласнаименьш ей частотой. В данном случае это D (5) и лю бой из F или A (10). Сф ормируем из "узлов " D и A нов ы й "узел", частотав хож дения для которого будетравнасуммечастотD иA: C A D F B E Си м вол 30 10 5 10 20 25 Чи с ло вхож дени й 15 Н омер в рамке - суммачастотсимв олов D иA. Т еп ерь снов аищ ем дв асимв олас самы ми низкими частотамив хож дения, исклю чая D иA ирассматрив ая в место них нов ы й "узел" ссуммарной частотой в хож дения. Самая низкая частотатеп ерь у F инов ого "узла". Снов ап ров едем оп ерац ию слияния узлов : C A D F B E Си м вол 30 10 5 10 20 25 Чи с ло вхож дени й 15
21
25 Рассмотрим таблиц у снов адля следую щ их дв ух симв олов (B иE). Затем п родолж им п оддерж ив ать этот реж им, п окав се "дерев о" не будет сф ормиров ано, т.е. п окав сенесведется к одному узлу. C A D F B E Си м вол 30 10 5 10 20 25 Чи с ло вхож дени й 15 45 25
55 100 (Root) Т еп ерь, когдадерев о создано, мож но кодиров ать ф айл. Н уж но в сегданачинать из корня (Root). К одируя п ерв ы й симв ол (листдерев аС), следуетп рослеж ив ать в в ерх п о дерев у в сеп ов ороты в етв ей и, еслиделается лев ы й п ов орот, то зап оминается 0-й бит, ианалогично 1-й битдля п равого п ов орота. Т ак для C, будем идти в лев о к 55 (изап омним 0), затем снов ав лев о (0) к самому симв олу. К од Х аф ф манадля симв олаC - 00. Д ля следую щ его симв ола(А ) п олучится - лев о, п раво, лев о, лев о, что в ы лив ается в п оследов ательность 0100. В ы п олнив этидейств ия для в сех симв олов , п олучим: C = 00 (2 бита); A = 0100 (4 бита); D = 0101 (4 бита); F = 011 (3 бита); B = 10 (2 бита); E = 11 (2 бита). П рикодиров аниинуж но заменить симв олы п олученны мип оследов ательностями. Д ля п остроения п реф иксны х кодов мож но такж е исп ользов ать таблиц ы . В сп омним, что в случае п рименения п реф иксны х кодов для кодиров ания текста мож но не указы в ать конец симв олаизап исы в ать один код задругим безразделителя, ирассмотрим текст: "ЗА Щ И Т А П РО ГРА М М И Д А Н Н Ы Х О Т Н СД ". О бъем закодиров анного текстамож етбы ть оп ределен п о ф ормуле: k V = Σ (bi * pi), i=1 гдеk - в сего разны х симв олов в тексте; рi - число п ов торений i-го симв ола; bi - длинакодаi-го симв ола. П ример 17: Си м вол Ча с тота повтор ени я К од О бъем (би т) П РО БЕ Л 5 1 5
22
А 4 01 8 Н 3 001 9 М 2 0001 8 Д 2 00001 10 И 2 000001 12 Т 2 0000001 14 Р 2 00000001 16 П 1 000000001 9 О 1 0000000001 10 Г 1 00000000001 11 Щ 1 000000000001 12 З 1 0000000000001 13 Ы 1 00000000000001 14 Х 1 000000000000001 15 С 1 0000000000000001 16 В этом случаезакодиров анны й текстзайметint(l82/8)+1=23 байта. О днако в озмож ен в ы бор другой кодиров очной таблиц ы . П ример 18: Си м вол Ча с тота повтор ени я К од О бъем (би т) П РО БЕ Л 5 00 10 А 4 01 8 Н 3 101 9 М 2 110 6 Д 2 1001 8 И 2 1000 8 Т 2 1110 8 Р 2 11110 10 П 1 111110 6 О 1 1111110 7 Г 1 11111110 8 Щ 1 111111110 9 З 1 1111111110 10 Ы 1 11111111110 11 Х 1 111111111110 12 С 1 111111111111 12 Т ерерь таблиц ы закодиров анны й текстзайметint(132/8)+1=17 байт. П ример 19: Си м вол Ча с тота повтор ени я К од О бъем (би т) П РО БЕ Л 5 000 15 А 4 001 12 Н 3 010 9 М 2 110 6 Д 2 011 6 И 2 101 6
23
Т 2 1000 8 Р 2 1110 8 П 1 10010 5 О 1 10011 5 Г 1 111100 6 Щ 1 111101 6 З 1 111110 6 Ы 1 1111110 7 Х 1 11111110 8 С 1 11111111 8 И з п рив еденны х в ы ш е трех кодов ы х таблиц наиболее оп тимальной оказалась п оследняя - в сего 121 бит. Т аким образом, п еред намив озниклаещ еодназадача: каким образом п одходить к в ы бору п реф иксного кода? Я сно, что в ы бор оп тимального для кодиров ания п реф иксного кодав о многом оп ределяется частотой кодируемы х симв олов в тексте и общ им числом различны х симв олов (размер алф авита). Н ап ример, еслив текстенаш его п римерап осле каж дого симв олабудет стоять дв ойной п робел, то в этом случае наиболее экономичны м станетп реф иксны й код п ерв ой таблиц ы . М етод Х аф ф манап рактически не п рименяется к изображ ениям в чистом в иде. О бы чно исп ользуется как один изэтап ов комп рессиив более слож ны х схемах. Э то единств енны й алгоритм, которы й неув еличив аетразмераисходны х данны х в худш ем случае. Сж а ти е с пос обом коди р ова ни я с ер и й (RLE) - за м ена оди на ковы х пос ледова тельнос тей одни м кодом . В случаечастого п ов торения в текстекакого-либо слов аилислов осочетания иногдап олезно п еред в ы п олнением архив ац иип о лю бому из алгоритмов осущ еств ить замену часто п ов торяю щ ейся п оследов ательностисп ец иальны м симв олом. Н а пр и м ер : {<кодси м вола ><чи сло повт ор ен и й>} П одобная п роц едурап озв олитсэкономить: V = k*V1 - (V1 + b) + k*b = (V1+b) *(k-l) битп амяти, где V1 - размер в битах исходной заменяемой п оследов ательности; k - в стречаемость исходной заменяемой п оследов ательности; b - размер в битах результирую щ его кода(симв ола). О бъем V = (g + b) * m , где g = LOG2 (k); b = LOG2 (n). m - число ц еп очек п ов торяю щ ихся симв олов ; k - число различны х симв олов ; n - в сего симв олов в тексте. Д ля текстаизсимв олов "а" и"б" в строкеаааааааааббббббббббббббаааааааааобъем сж атого результатасоставит: V = (LOG2 (2)+LOG2 (31))*3=6*3=18 бит. И менно такой п одход к сж атию инф ормац ииреализует кодиров ание серий п оследов ательностей (Run Length Encoding - RLE). Э то наиболее изв естны й п ростой п одход иалгоритм сж атия инф ормац ииобратимы м п утем.
24
Суть методов данного п одходасостоит в замене ц еп очек илисерий п ов торяю щ ихся байтов илиих п оследов ательностей наодин кодирую щ ий байт исчетчик числаих п ов торений. П ример 20: 44 44 44 11 11 11 11 11 01 33 FF 22 22 - исходная п оследов ательность 03 44 04 11 00 03 01 03 FF 02 22 - сж атая п оследов ательность П ерв ы й байтуказы в ает, сколько разнуж но п ов торить следую щ ий байт. Е слип ерв ы й байтравен 00, то затем идетсчетчик, п оказы в аю щ ий, сколько заним следуетнеп ов торяю щ ихся данны х. В п рив еденном п римере мы исходили из линейного расп олож ения симв олов . О днако когдаречь идет о сж атииф айлов , содерж ащ их инф ормац ию об изображ ениях, бы в ает удобно п редставлять сж имаемы е коды в дв умерном илитрехмерном п ространств е. Н ап ример, рисунок букв ы Т мож ет бы ть закодиров ан следую щ им образом: <число кв адратов ><размер кв адрата> {<код кв адрата>}. П усть изображ ениеТ в ы глядитследую щ им образом: 111111111 111111111 000111000 000111000 000111000 000111000 Т огдав закодиров анном в идебудем иметь: 3, 3*2, 1, 1, 1, 0, 1, 0, 0, 1, 0. Э тотметод ориентиров ан наизображ ения снебольш им количеств ом ц в етов : делов ую инаучную граф ику - изображ ения сбольш имиобластямип ов торяю щ егося ц в ета. К п олож ительны м сторонам алгоритма, п ож алуй, мож но отнеститолько то, что он нетребуетдоп олнительной п амятип риархив ац иииразархив ац ии, атакж е бы стро работает. И нтересная особенность груп п ов ого кодиров ания состоитв том, что степ ень архив ац иидля некоторы х изображ ений мож ет бы ть сущ еств енно п ов ы ш енав сего лиш ь засчетизменения п орядкац в етов в п алитреизображ ения. М етоды такого тип а, как п равило, достаточно эф ф ектив ны для сж атия растров ы х граф ических изображ ений (BMP, PCX, TIF, GIF), т.к. п оследние содерж ат достаточно много длинны х серий п ов торяю щ ихся п оследов ательностей байтов . Н едостатком методаRLE яв ляется достаточно низкая степ ень сж атия. К роме того, для этого п ростого алгоритмане так уж редкаситуац ия, когда ф айл ув еличив ается. Е е мож но легко п олучить, п рименяя груп п ов ое кодиров ание к обработанны м ц в етны м ф отограф иям. П ози ци онное коди р ова ни е К аж ды й симв ол текстамож ет бы ть охарактеризов ан п озиц ией (местом) в тексте отначалатекстаилиотносительно такого ж есимв ола. "ЗА Щ И Т А П РО ГРА М М И Д А Н Н Ы Х О Т Н СД ". Си м вол М ес то М а кс . р а с с тояни е З 0 0 А 1,5,12,19 7
25
Щ 2 0 И 3,16 13 Т 4,26 22 П 7 0 Р 8,11 3 О 9,25 16 Г 10 0 М 13,14 1 Д 18,30 12 Н 20,21,28 7 Ы 22 0 Х 23 0 С 29 0 П РО БЕ Л 6,15,17,24,27 9 В случаеданного п одходанеобходимо наиболееэкономичны м п утем заф иксиров ать инф ормац ию о месторасп олож ениикаж дого симв ола. Т о есть в данном случаеструктураархив иров анного текстабудетп римерно такой: <код симв ола>{<место в тексте>}<п ризнак конц а>. k V = Σ ( bi+ (ri + 1) * LOG2(n) ), i=1 гдеn - число симв олов в тексте; bi - размер кодасимв олав битах; ri - число п ов торений симв олав тексте; к - в сего разны х симв олов в тексте. 8*31 + 31*4 = 31*12 = 372 <= 47 байт Т акой п одход мож ет бы ть п олезен для архив ац ии данны х только в том случае, когда<код симв ола> занимает значительно больш е бит в сравнении с <местом в тексте> или когдакодирую тся не симв олы , аслов аилислов осочетания. П риналичиислов аря исходны й текстмож етбы ть закодиров ан в 17 байт. V = 6 * ( 16 + 2 * 3) = 132 бит<= 17 байт. Д ля в зятого п римера: n = 6 слов (размер текстав кодируемы х элементах); b = 16 бит(размер в битах одного кода); r = 1 слов о (число п ов торений различны х кодов ); k = 6 слов (в сего различны х кодов ). П ример 21. Слово П ор ядковы й ном ер (b=2 ба йта ) … … … … … … . Д АННЫ Х 44 ЗА Щ И Т А 45 И 45 … … … … … … . Н СД 77
26
… … … … О Т П РО ГРА М М
… … . 90 91
Ар и ф м ети ч ес кое коди р ова ни е Д анны й алгоритм эф ф ектив ен, когдаразмер исп ользуемого алф авита п орядка нескольких симв олов (2,3 симв ола) ип риэтом каж ды й симв ол достаточно часто п ов торяется. Э тот п одход удобен для сж атия текстов , содерж ащ их инф ормац ию о граф ических изображ ениях. А риф метическоекодиров аниеяв ляется методом, п озв оляю щ им уп аков ы в ать симв олы в ходного алф авитабезп отерь п риуслов ии, что изв естно расп ределение частот этих симв олов , ияв ляется наиболее оп тимальны м, т.к. достигается теоретическая границ астеп енисж атия. П редп олагаемая требуемая п оследов ательность симв олов , п рисж атииметодом ариф метического кодиров ания, рассматрив ается как некоторая дв оичная дробь из интерв ала[0, 1). Результат сж атия п редставляется как п оследов ательность дв оичны х ц иф р иззап исиэтой дроби. И дея методатаков а: исходны й текстрассматрив ается как зап ись этой дроби, где каж ды й в ходной симв ол яв ляется "ц иф рой" св есом, п роп орц иональны м в ероятностиего п ояв ления. Э тим объясняется интерв ал, соотв етств ую щ ий минимальной имаксимальной в ероятностям п ояв ления симв олав п отоке. П ример 22. П усть алф авит состоит из дв ух симв олов : a иb св ероятностямисоотв етств енно 0,75 и0,25. Рассмотрим наш интерв ал в ероятностей [0, 1). Разобьем его начасти, длина которы х п роп орц иональнав ероятностям симв олов . В наш ем случае это [0; 0,75) и [0,75; 1). Суть алгоритмав следую щ ем: каж дому слов у в о в ходном алф авите соотв етств ует некоторы й п одинтерв ал изинтерв ала[0, 1), ап устому слов у соотв етств ует в есь интерв ал [0, 1). П осле п олучения каж дого следую щ его симв ола интерв ал уменьш ается св ы бором той его части, которая соотв етств ует нов ому симв олу. К одом ц еп очки яв ляется интерв ал, в ы деленны й п осле обработки в сех ее симв олов , точнее, дв оичная зап ись лю бой точки из этого интерв ала, адлина п олученного интерв ала п роп орц иональна в ероятности п ояв ления кодируемой ц еп очки. П рименим данны й алгоритм для ц еп очки"aaba": Ш аг П р ос м отр енна я цепоч ка И нтер ва л 0 Н ет [0,1) 1 А [0,0.75) 2 А а [0,0.5625) 3 А аб [0.421875,0.5625) [0.421875,0.52734375 4 А аба ) Границ ы интерв ала в ы числяю тся так: берется расстояние в нутри интерв ала (0,5625-0,421875=0,140625), делится начастоты [0; 0,10546875) и[0,10546875; 1) инаходятся нов ы еграниц ы [0,421875; 0,52734375) и[0,52734375; 0,5625).
27
В качеств е кодамож но в зять лю бое число из интерв ала, п олученного на ш аге4, нап ример, 0,43. А лгоритм декодиров ания работает аналогично кодирую щ ему: на в ходе 0,43 иидетразбиениеинтерв ала. П родолж ая этот п роц есс, мож но однозначно декодиров ать в се четы ре симв ола. Д ля того чтобы декодирую щ ий алгоритм мог оп ределить конец ц еп очки, мож но либо п ередавать ее длину отдельно, либо добавить к алф авиту доп олнительны й уникальны й симв ол - "конец ц еп очки". Алг ор и тм Л ем пеля-Зи ва -В елч а (Lempel-Ziv-Welch - LZW) Д анны й алгоритм отличаю тв ы сокая скорость работы как п риуп аков ке, так ип рирасп аков ке, достаточно скромны е требов ания к п амятиип ростая ап п аратная реализац ия. Н едостаток - низкая степ ень сж атия п о сравнению со схемой дв ухступ енчатого кодиров ания. П редп олож им, что у насимеется слов арь, хранящ ий строки текстаи содерж ащ ий п орядкаот2-х до 8-миты сяч п ронумеров анны х гнезд. Зап иш ем в п ерв ы е 256 гнезд строки, состоящ иеизодного симв ола, номер которого равен номеру гнезда. А лгоритм п росматрив ает в ходной п оток, разбив ая его нап одстрокиидобавляя нов ы е гнездав конец слов аря. П рочитаем несколько симв олов в строку s инайдем в слов арестроку t - самы й длинны й п реф иксs. П усть он найден в гнезде сномером n. В ы в едем число n в в ы ходной п оток, п ереместим указатель в ходного п отоканаlength(t) симв олов в п еред идобавим в слов арь нов ое гнездо, содерж ащ ее строку t+c, где с- очередной симв ол нав ходе (сразу п ослеt). А лгоритм п реобразуетп оток симв олов нав ходев п оток индексов ячеек слов аря нав ы ходе. П ри п рактической реализац ии этого алгоритмаследует учесть, что лю бое гнездо слов аря, кроме самы х п ерв ы х, содерж ащ их одно-симв ольны е ц еп очки, хранит коп ию некоторого другого гнезда, к которой в конец п рип исан один симв ол. П отому мож но обойтись п ростой сп исочной структурой содной связью . П ример 23: ABCABCABCABCABCABC - 1 2 3 4 6 5 7 7 7 1 2 3 4 5 6 7 8 9 А В С АВ ВС СА А В С СА В В СА П рименительно к граф ическим изображ ениям алгоритм LZW реализов ан в ф орматах GIF иTIFF. Н еориентиров ан на8-битны еизображ ения, п остроенны ена комп ью тере. Сж имает засчет одинаков ы х п одц еп очек в п отоке. Ситуац ия, когда алгоритм ув еличив ает изображ ение, в стречается крайне редко. LZW унив ерсален — именно его в арианты исп ользую тся в обы чны х архив аторах. Д вухс тупенч а тое коди р ова ни е. Алг ор и тм Л ем пеля-Зи ва Гораздо больш ей степ енисж атия мож но добиться п рив ы деленииизв ходного п отокап ов торяю щ ихся ц еп очек - блоков икодиров ания ссы лок наэтиц еп очкисп остроением хеш -таблиц отп ерв ого до n-го уров ня. М етод, о котором ип ойдет речь, п ринадлеж ит Л емп елю иЗив у иобы чно назы в ается LZ-compression илиLZ77 (назв анны й так п о году своего оп убликов а-
28
ния). О н ф ормулируется следую щ им образом: "еслив п рош едш ем ранее в ы ходном п отоке уж е в стречалась п одобная п оследов ательность байт, п ричем зап ись о ее длине и смещ ении от текущ ей п озиц ии короче чем самаэтап оследов ательность, то в в ы ходной ф айл зап исы в ается ссы лка(смещ ение, длина), анесамап оследов ательность". Т ак ф раза"К О Л О К О Л _О К О Л О _К О Л О К О Л ЬН И " закодируется как "К О Л О (-4,3)_(-5,4)О _(-14,7)ЬН И ". Расп ространенны й метод сж атия RLE (англ. Run Length Encoding), которы й заклю чается в зап иси в место п оследов ательности одинаков ы х симв олов одного симв олаиих количеств а, яв ляется п одклассом данного алгоритма. Рассмотрим, нап ример, п оследов ательность "А А А А А А А ". С п омощ ью алгоритмаRLE онабудетзакодиров анакак "(А ,7)", в то ж ев ремя еемож но достаточно хорош о сж ать и сп омощ ью алгоритмаLZ77: "А (-1,6)". Д ейств ительно, степ ень сж атия именно такой п оследов ательностиим ниж е (п римерно на30-40%), но сам п о себе алгоритм LZ77 более унив ерсален имож ет намного лучш е обрабаты в ать п оследов ательностив ообщ енесж имаемы еметодом RLE. Суть методаЛ емп еля-Зив а состоит в следую щ ем: уп аков щ ик п остоянно хранит некоторое количеств о п оследних обработанны х симв олов в буф ере. П о мере обработкив ходного п отокав нов ь п оступ ив ш ие симв олы п оп адаю т в конец буф ера, сдв игая п редш еств ую щ иесимв олы ив ы тесняя самы естары е. Размеры этого буф ера, назы в аемого такж е скользящ им слов арем (sliding dictionary), в арьирую тся в разны х реализац иях кодирую щ их систем. Э ксп ериментальны м п утем установ лено, что п рограммаLHarc исп ользует 4-килобайтны й буф ер, LHA иPKZIP - 8-ми, аARJ - 16-килобайтны й. Затем, п осле п остроения хеш -таблиц , алгоритм в ы деляет (п утем п оискав слов аре) самую длинную начальную п одстроку в ходного п отока, сов п адаю щ ую с одной изп одстрок в слов аре, ив ы даетнав ы ход п ару (length, distance), гдеlength - длинанайденной в слов ареп одстроки, аdistance - расстояниеотнеедо в ходной п одстроки (то есть ф актически индексп одстроки в буф ере, в ы чтенны й из его размера). В случае, если такая п одстрокане найдена, в в ы ходной п оток п росто коп ируется очередной симв ол в ходного п отока. В п ерв оначальной в ерсии алгоритмап редлагалось исп ользов ать п ростейш ий п оиск п о в сему слов арю . О днако, в дальнейш ем, бы ло п редлож ено исп ользов ать дв оичное дерев о и хеш иров ание для бы строго п оискав слов аре, что п озв олило нап орядок п однять скорость работы алгоритма. Т аким образом, алгоритм Л емп еля-Зив ап реобразует один п оток исходны х симв олов в дв ап араллельны х п отокадлин ииндексов в таблиц е(length+distance). О чев идно, что эти п отоки яв ляю тся п отоками симв олов сдв умя нов ы ми алф авитами и к ним мож но п рименить один из уп оминавш ихся в ы ш е методов (RLE, кодиров аниеХ аф ф манаилиариф метическоекодиров ание). Т ак мы п риходим к схеме дв ухступ енчатого кодиров ания - наиболее эф ф ектив ной из п рактически исп ользуемы х в настоящ ее в ремя. П ри реализац ии этого методанеобходимо добиться согласов анного в ы в одаобоих п отоков в один ф айл. Э тап роблемаобы чно реш ается п утем п оочередной зап исикодов симв олов изобоих п отоков .
29
К оди р ова ни е с пом ощ ью цепны х кодов М етод исп ользуется в основ ном для п редставления изображ ений. П риего исп ользов аниив ектору, соединяю щ ему дв е соседние точки, ставится в соотв етств иеодин симв ол, п ринадлеж ащ ий некоторому конечному множ еств у. М етод достаточно эф ф ектив ен, еслиточкирасп олож ены близко друг к другу ип римерно на одинаков ом расстоянии. К одиров очная таблиц асоздается набазе оп исанного в ы ш е п реф иксного кода. Н ап ример, еслинам надо закодиров ать рисунок кв адратас ш ириной в 5 точек, то кодиров очная таблиц амож етв ы глядеть следую щ им образом: Н а пр а влени е Д вои ч ное зна ч ени е то ж енап равлениедв иж ения 1 в лев о на90 градусов 01 в п раво на90 градусов 001 Т огдазакодиров анны й рисунок займетв сего 22 бита: 1111001111001111001111. (пр и обходе слева н а пр а во и свер ху вн и з) П онятно, что число кодируемы х нап равлений мож но ув еличить. Т огдатакой п одход мож етбы ть п риемлем идля болееслож ны х изображ ений. О р г а ни за ци я с ж а ти я и зобр а ж ени й с ог ла с но с та нда р ту JPEG Joint Photographic Experts Group - объединенная груп п аэксп ертов п о обработкеф отограф ических изображ ений. JPEG - достаточно мощ ны й алгоритм. П рактическион яв ляется стандартом для п олноц в етны х изображ ений [5]. О п ерирует алгоритм областями8х8, накоторы х яркость иц в ет меняю тся сравнительно п лавно. В следств ие этого, п риразлож енииматриц ы такой областив дв ойной ряд п о косинусам значимы миоказы в аю тся только п ерв ы екоэф ф иц иенты . Т аким образом, сж атиев JPEG осущ еств ляется засчетп лавностиизменения ц в етов в изображ ении. М етодика JPEG учиты в ает особенностив осп риятия в изуальной инф ормац ии. В качеств е п олож ительны х моментов мож но указать в озмож ность задания степ ени сж атия. О триц ательны м для алгоритмаяв ляется то, что п рип ов ы ш ении степ енисж атия изображ ение расп адается наотдельны екв адраты (8x8). Э то связано стем, что п роисходят больш ие п отерив низких частотах п рикв антов ании, и в осстанов ить исходны е данны е станов ится нев озмож но. К роме того, п рояв ляется эф ф ектГиббса— ореолы п о границ ам резких п ереходов ц в етов . Степ ень сж атия зависитотв идаизображ ения иотп рименяемы х матриц кв антов ания. К оэф ф иц иенты комп рессии: 2-200 (Задается п ользов ателем). Ф р а кта льное с ж а ти е и зобр а ж ени й Ф рактальная архив ац ия основ ананатом, что изображ ение п редставляется в более комп актной ф орме — сп омощ ью коэф ф иц иентов системы итерируемы х ф ункц ий (Iterated Function System — далее IFS). П реж де чем рассматрив ать сам п роц ессархив ац ии, разберем, как IFS строит изображ ение, т.е. п роц ессдекомп рессии. Строго гов оря, IFS п редставляетсобой набор трехмерны х аф ф инны х п реобразов аний, в наш ем случае п ерев одящ их одно изображ ение в другое. П реобразо-
30
в анию п одв ергаю тся точки в трехмерном п ространств е (х_координата, у_координата, яркость). А лгоритм сж атия 1. Разбить п олностью в сеизображ ениенанеп ересекаю щ иеся области(домены ); 2. Разбить изображ ения нарангов ы е областибольш его размера. Рангов ы е областимогутп ерекры в аться инеобязательно долж ны охв аты в ать в сеизображ ение; 3. Д ля каж дого доменап одобрать рангов ую область, которая п осле аф ф инного п реобразов ания наиболееточно ап п роксимируетдомен; 4. Сж ать исохранить п араметры аф ф инного п реобразов ания в ф айле С. Результат содерж ит: заголов ок синф ормац ией о расп олож ениидоменов ирангов ы х областей итаблиц у аф ф инны х коэф ф иц иентов для каж дого домена. А лгоритм в осстанов ления 1. Создадим дв аслучайны х изображ ения А иБ; 2. П реобразуем данны е изобластиА в область Б. Разобьем изображ ение Б на домены , согласно заголов ку ф айлаС. Д ля каж дого доменаобластиБ п ров едем аф ф инное п реобразов аниерангов ы х областей изображ ения А , оп исанное в ф айлеС. В результатеп олучим сов ерш енно нов оеизображ ение. 3. П реобразуем данны еизобластиБ в область А аналогично п . 2. 4. П ов торяем п роц едуры 2) и 3) до тех п ор, п окаизображ ения А и Б не будут одинаков ы . А ф ф инноеп реобразов ание f ( x) = ах + bу + е f (у) = cx + dy + f a, b, c, d - аф ф инны екоэф ф иц иенты в ращ ения, деф ормац ии, расш ирения/сж атия, е, f - коэф ф иц иенты п еремещ ения. П утем п ростого изменения аф ф инны х коэф ф иц иентов лю бой объект, заданны й набором координат (x,у), мож но в ращ ать, деф ормиров ать, расш ирять/сж имать, п еремещ ать. Н ап ример: И сходны екоординаты : Х ={ х1, х2 . . . . х k}, Y={у1 ,у2 ,...уk ); Н ов ы екоординаты : Х 1 = а*Х + b*Y + е У 1 = с*Х + d*Y + f Реш ая системы уравнений, мож но найти аф ф инны е коэф ф иц иенты a, b, c, d, e, f. П одробноеоп исаниеалгоритмасм. [6]. Д ля ф рактального алгоритмакомп рессии, как идля других алгоритмов сж атия сп отерями, очень в аж ны механизмы , сп омощ ью которы х мож но будет регулиров ать степ ень сж атия и степ ень п отерь. К настоящ ему в ремени разработан достаточно больш ой набор таких методов . В о-п ерв ы х, мож но ограничить количеств о аф ф инны х п реобразов аний, заведомо обесп ечив степ ень сж атия не ниж е ф иксиров анной в еличины . В о-в торы х, мож но п отребов ать, чтобы в ситуац ии, когдаразниц амеж ду обрабаты в аемы м ф рагментом инаилучш им его п риближ ением будет в ы ш е оп ределенного п орогов ого значения, этот ф рагмент дробился обязательно. В -третьих, мож но зап ретить дробить ф рагменты размером меньш е, доп устим, четы рех точек. И зменяя п орогов ы езначения ип риоритетэтих услов ий, мож но очень гибко уп равлять коэф ф иц иентом комп рессии изображ ения в диап азоне от п обитов ого соотв етств ия до лю бой степ енисж атия. Следует заметить, что эта
31
гибкость будет гораздо в ы ш е, чем у ближ айш его “конкурента” — JPEG. К оэф ф иц иенткомп рессии- 2-2000 - задается п ользов ателем.
алгоритма
Рекур с и вны й (волновой) а лг ор и тм А нглийское назв ание рекурсив ного сж атия — wavelet. Н арусский язы к оно п ерев одится как в олнов ое сж атие икак сж атие сисп ользов анием в сп лесков . Э тот в ид архив ац ииизв естен дов ольно давно инап рямую исходит изидеиисп ользов ания когерентности областей. О риентиров ан алгоритм нац в етны е и черно-белы е изображ ения сп лавны мип ереходами. И деален для картинок тип арентгенов ских снимков . К оэф ф иц иент сж атия задается ив арьируется в п ределах 5-100. П рип оп ы ткезадать больш ий коэф ф иц иентнарезких границ ах, особенно п роходящ их п о диагонали, п рояв ляется “лестничны й эф ф ект” — ступ еньки разной яркости размером в несколько п икселов . И дея алгоритмазаклю чается в том, что мы сохраняем в ф айл разниц у — число меж ду средними значениями соседних блоков в изображ ении, которая обы чно п ринимаетзначения, близкиек 0. Т ак, дв ачислаa2i иa2i+1 в сегдамож но п редставить в в иде b1i=(a2i+a 2i+1)/2 и b 2i=(a2i-a2i+1)/2. А налогично п оследов ательность ai мож ет бы ть п оп арно п ерев еденав п оследов ательность b1,2i. П ример 24: п усть сж имается строкаиз 8 значений яркости п икселов (ai): (220, 211, 212, 218, 217, 214, 210, 202). П олучим следую щ ие п оследов ательности b 1i, иb2i: (215.5, 215, 215.5, 206) и(4.5, -3, 1.5, 4). Заметим, что значения b2i достаточно близки к 0. П ов торим оп ерац ию , рассматрив ая b1i как ai. Д анное действ ие в ы п олняется как бы рекурсив но, откудаи назв ание алгоритма. М ы п олучим из (215.5, 215, 215.5, 206): (215.25, 210.75) (0.25, 4.75). П олученны е коэф ф иц иенты , округлив до ц елы х исж ав, нап ример, сп омощ ью алгоритмаХ аф ф манасф иксиров анны митаблиц ами, мы мож ем п оместить в ф айл. Заметим, что п реобразов ание к ц еп очке п рименялось только дв араза. Реально мож но п озв олить себе п рименение wavelet-п реобразов ания 4-6 раз. Более того, доп олнительное сж атие мож но п олучить, исп ользуя таблиц ы алгоритма Х аф ф манаснеравномерны м ш агом (т.е. нам п ридется сохранять код Х аф ф мана для ближ айш его в таблиц е значения). Э ти п риемы п озв оляю т достичь заметны х коэф ф иц иентов сж атия. А лгоритм для дв умерны х данны х реализуется аналогично. Е слиу насесть кв адратиз4 точек сяркостямиa2i,2j, a 2i+1, 2j, a2i, 2j+1, иa2i+1, 2j+1, то
И сходное B1 B2 изображ ение B3 B4 И сп ользуя эти ф ормулы , мы для изображ ения 512х512 п икселов п олучим п ослеп ерв ого п реобразов ания 4 матриц ы размером 256х256 элементов .
32
В п ерв ой будет храниться уменьш енная коп ия изображ ения. В о в торой — усредненны е разности п ар значений п икселов п о горизонтали. В третьей — усредненны е разностип ар значений п икселов п о в ертикали. В четв ертой — усредненны еразностизначений п икселов п о диагонали. П о аналогиисдв умерны м случаем мож но п ов торить п реобразов ание ип олучить в место п ерв ой матриц ы 4 матриц ы размером 128х128. П ов торив п реобразов ание в третий раз, п олучим в итоге: 4 матриц ы 64х64, 3 матриц ы 128х128 и3 матриц ы 256х256. Н ап рактикеп ризап исив ф айл значениями, п олучаемы мив п оследней строке b4ij, обы чно п ренебрегаю т (сразу п олучая в ы игры ш п римерно натреть размераф айла— 1 - 1/4 - 1/16 1/64...). К достоинств ам этого алгоритмамож но отнестито, что он очень легко п озв оляет реализов ать в озмож ность п остеп енного “п рояв ления” изображ ения п ри п ередаче изображ ения п о сети. К роме того, п оскольку в началеизображ ения ф актическихранится его уменьш енная коп ия, уп рощ ается п оказ“огрубленного” изображ ения п о заголов ку. В отличие от JPEG иф рактального алгоритмаданны й метод не оп ерирует блоками, нап ример, 8х8 п икселов . Т очнее, оп ерирует блоками2х2, 4х4, 8х8 ит.д. О днако засчеттого, что коэф ф иц иенты для этих блоков сохраняю тся независимо, достаточно легко мож но избеж ать дробления изображ ения на“мозаичны е” кв адраты . К оэф ф иц иенткомп рессии- 2-200 - задается п ользов ателем. Ра зби ени е и с ходног о м нож ес тва с и м волов на нес колько а лф а ви тов Д анны й п одход основ ан науменьш енииразмеракодасимв олаза счет разбиения в сего множ еств асимв олов нанесколько алф авитов ив в едениеслуж ебного симв ола(п ерв ы й в ариант) илислуж ебны х симв олов (в торой в ариант) для п ереклю чения алф авитов . П ерв ы й в ариант 1) в серазличны есимв олы текстаразбив аю тся наL алф авитов ; 2) один из кодов каж дого алф авитаяв ляется служ ебны м (в сегдаодин итот ж е код); 3) п рип ереходеотодного алф авитак другому в текств клю чается служ ебны й код. Ч исло п ов торов служ ебного кодаоднозначно оп ределяетномер алф авита. V = SUM ( b * р ) + y b - размер в битах кодасимв ола; p - число различны х симв олов ; y - число служ ебны х; симв олов для п ереклю чения алф авитов . Д ля п ерв ого в ариантаy мож но оц енить п о следую щ ей ф ормуле: L+1 y (минимальны й) = ∑ (i-1) * b i=1 y (максимальны й) = n * L/2. В торой в ариант 1) в серазличны есимв олы текстаразбив аю тся наL алф авитов ; 2) В каж дом алф авитев ы деляется L одних итех ж еслуж ебны х кодов ; 3)п рип ереходе отодного алф авитак другому в текств клю чается служ ебны й код, соотв етств ую щ ий требуемому алф авиту.
33
Д ля в тopoгo в ариантау мож но оц енить п о следую щ ей ф ормуле: y (минимальны й) = (L - 1) * b y (максимальны й) = n * b (L>1) Х арактерны м п римером п одобного сп особакодиров ания яв ляется меж дународны й телеграф ны й код М Т К -2. См ы с лова я а р хи ва ци я К ак в идно из п рив еденны х п римеров , коэф ф иц иент сж атия объема, занимаемого текстом, в результате архив ац иив о многом оп ределяется самим текстом, такимиего характеристиками, как: • число различны х симв олов ; • частотап ов торения симв олов ; • расстояниемеж ду одинаков ы мисимв олами. В о в сех в ы ш еп рив еденны х алгоритмах мы исходилииз необходимостиоднозначного в осстанов ления архив ируемого текста, т.е., п о сути, искалиальтернатив ны е сп особы кодиров ки, п озв оляю щ ие наиболее экономно исп ользов ать п амять Э В М . О днако ненадо забы в ать, что исходны й текстмож етсодерж ать исмы слов ую избы точность, т.е. п риоп ределенны х услов иях он мож ет бы ть п равильно в осстанов лен даж е в случае безв озв ратной п отерикакой-то своей части. Н ап ример, если в архив ируемом тексте п роп адут в се гласны е букв ы , то думается, что в осстанов ление будет п редставлять собой неслож ную п роц едуру для челов ека, умею щ его грамотно п исать. Т очно такж е смож ет в осстанов ить данны й текст и Э В М п риналичиив п амятиорф ограф ического слов аря. П ример 25: "3?Щ ?Т ? П Р?ГР?М М ? Д ?Н Н ?Х ?Т Н СД " В этом случае, п рименяя п реф иксны й код, мож но сж ать текстдо 14 байт. Си м вол Ча с тота повтор ени я К од О бъем (би т) П РО БЕ Л 5 00 10 ? 4 01 18 Н 3 101 9 М 2 110 6 Д 2 1001 8 Т 2 1110 8 Р 2 1100 8 П 2 11110 5 Г 1 111110 6 Щ 1 1111110 7 З 1 11111110 8 Х 1 111111110 9 С 1 111111111 9 В п рив еденном п римере из текста бы ли изъяты только гласны е букв ы . О днако букв ы - кандидаты на удаление могу бы ть в ы браны ислучайны м образом. И сходя изтого, что избы точность лю бого естеств енного язы ка составляет 30-40%, п редв арительно, п еред архив ац ией, мож но, исп ользуя случайны е п оследов ательности, п роредить текст, удалив из него 30-40% симв олов . Благодаря чему объем исходного текста, п одлеж ащ его архив ац ии, значительно сократится.
34
О днако надо п омнить, что п рименениесмы слов ой архив ац иииногда мож ет бы ть чрев ато сущ еств енной п отерей смы слатекста. Н ап ример, п оп робуйте расш иф ров ать следую щ ую ф разу (в сегласны езаменены "?"): К л?д б?л ? ?нн?. В озмож ны ев арианты : 1) К лад бы л у И нны . 2) К лод бы л у А нны . 3) К лод бил иА нну. В серьезны х п рилож ениях смы слов ая архив ац ия никогданеисп ользуется, и здесь данны й алгоритм п рив еден исклю чительно для п олноты картины . П ои с к за коном ер нос тей Н е в сегдаобязательно п ы таться лю бы ми п утями нап рямую архив иров ать данны еодним изв ы ш еоп исанны х сп особов . И ногдабы в аетп олезно п оискать закономерности, п рисущ ие исходны м ф айлам данны х. К огдаречь идет о граф ических изображ ениях, п онятно, что для того чтобы в осстанов ить п рямую линию , сов сем необязательно хранить инф ормац ию о каж дой точке линии– достаточно идв ух точек. Т о ж е мож но сказать ио других геометрических ф игурах. Ч то касается симв ольны х текстов , то здесь в се гораздо слож нее. П онятно, что текстам естеств енного язы катакж е п рисущ и оп ределенны е закономерности. Н ап ример, в старославянской п исьменностичислительны е обозначались букв ами русского алф авита, т.е. А = 1, Б = 2 ит.д. - п ричем п ослечисла10 идут20, 30, 40 ит.д., ап осле 100 - соотв етств енно 200, 300… . Значит, каж дая букв арусской азбуки имеет строго оп ределенную числов ую меру. О казалось, что в есь русский язы к, в се слов аимею т суммарны е числов ы е меры , п одчиняю щ иеся строгой закономерности. П риэтом слов а-синонимы имею т одну иту ж е сумму чисел п рисов ерш енно различном нап исании. П ридальнейш ем исследов аниив ы яснилось, что ив других древ них язы ках слов аодного смы слаимею тодинаков ую числов ую меру. Столь ж ебезуслов наиф онетическая сторонаязы ка. В ы бор а лг ор и тм а а р хи ва ци и В ы бор алгоритмаархив ац иив о многом оп ределяется следую щ имиф акторами: - статическимихарактеристикамирасп ределения кодов ш иф руемы х данны х; - ограничением нав ремя архив ац ии/дезархив ац ии; - наличием у п ользов ателя готов ы х архив аторов или сп ец иальны х библиотечны х модулей для архив ац ии. И змнож еств асущ еств ую щ их ип еречисленны х в ы ш еалгоритмов архив ац иив реальны х п рограммах исп ользую тся лиш ь немногие. Н аиболее п оп улярны ми яв ляю тся алгоритм Л емп ела-Зив а, Х аф ф манаиконтекстноемоделиров ание. В основ у контекстного моделиров ания п олож ен п оиск закономерностей текста. Х орош ий архив атор, как п равило, в клю чает в себя несколько алгоритмов . П рактически в се п оп улярны е п рограммы архив ац ии без п отерь (ARJ, RAR, ZIP) исп ользую тобъединениеп ерв ы х дв ух изназв анны х методов – алгоритм LZH. К аж ды й из методов кодиров ания мож ет исп ользов аться для защ иты данны х, особенно если исп ользуется свой (нестандартны й) в ариант методасж атия
35
данны х. Стойкость кодиров ания п ов ы ш ается п ри исп ользов ании нескольких методов сж атия для одного блокаоткры ты х данны х. Л И ТЕ РАТУ РА 1. П рограммиров ание алгоритмов защ иты инф ормац ии / А .В .Д омаш ев , В .О .П оп ов , Д .И .П равиков идр. - М .: Н олидж , 2000. - 288 с., илл. 2. Зегж даД .П ., И в аш ко А .М . О снов ы безоп асности инф ормац ионны х систем. М .: Горячая линия – Т елеком, 2000. - 452 с., илл. 3. Т еоретические основ ы комп ью терной безоп асности. У чеб. П особие для в узов / П .Н .Д ев янин, О .О .М ихальский, Д .И .П равиков идр. - М .: Радио исвязь, 2000. 192 с., илл. 4. Расторгуев С.П . П рограммны е методы защ иты инф ормац ии в комп ью терах и сетях. М .: Я хтсмен, 1993.-187 с., табл. 5. G.K. Wallace. The JPEG still picture compression standard // Communication of ACM. Volume 34. Number 4 April 1991. 6. Д .С. В атолин. Ф рактальное сж атие изображ ений // ComputerWorld-Россия. Н омер 6 (23). 20 ф ев раля 1996. 7. B.Smith, L.Rowe Algorithm for manipulating compressed images //Computer Graphics and applications. September 1993. СО Д Е РЖ АН И Е В В Е Д Е Н И Е ............................................................................................................... 2 П РО Г РАМ М Н Ы Е М Е ТО Д Ы ЗАЩ И ТЫ Д АН Н Ы Х ......................................... 2 К РИ П ТО Г РАФ И ЧЕ СК И Е М Е ТО Д Ы ЗАЩ И ТЫ Д АН Н Ы Х .......................... 3 М Е ТО Д Ы Ш И Ф РО В АН И Я ................................................................................... 5 М Е Т О Д Ы ЗА М Е Н Ы ...................................................................................................... 5 М Е Т О Д Ы П Е РЕ СТ А Н О В К И ........................................................................................... 9 П О Б А Й Т Н Ы Е А Л ГО РИ Т М Ы Ш И Ф РО В А Н И Я ................................................................. 10 М Е Т О Д БИ Т О В Ы Х М А Н И П У Л Я Ц И Й ............................................................................ 10 К О Д И РО В О Ч Н А Я К Н И ГА ........................................................................................... 12 М Е Т О Д Ы А Н А Л И Т И Ч Е СК И Х П РЕ О БРА ЗО В А Н И Й ......................................................... 12 ГА М М И РО В А Н И Е ...................................................................................................... 13 К О М Б И Н И РО В А Н Н Ы Е М Е Т О Д Ы ................................................................................. 14 Ш И Ф РО В А Н И Е С О Т К РЫ Т Ы М К Л Ю Ч О М ..................................................................... 14 М Е ТО Д Ы К О Д И РО В АН И Я ................................................................................ 15 М
Е Т О Д РА ССЕ Ч Е Н И Я -РА ЗН Е СЕ Н И Я
.......................................................................... 16
М Е ТО Д Ы АРХ И В АЦИ И ...................................................................................... 17 Т А БЛ И Ч Н А Я К О Д И РО В К А .......................................................................................... 18 А Л ГО РИ Т М Х А Ф Ф М А Н А ........................................................................................... 19 СЖ А Т И Е СП О СО Б О М К О Д И РО В А Н И Я СЕ РИ Й (RLE) - ЗА М Е Н А О Д И Н А К О В Ы Х П О СЛ Е Д О В А Т Е Л ЬН О СТ Е Й О Д Н И М К О Д О М . ................................................................ 23
36
П О ЗИ Ц И О Н Н О Е К О Д И РО В А Н И Е ................................................................................. 24 А РИ Ф М Е Т И Ч Е СК О Е К О Д И РО В А Н И Е ........................................................................... 26 А Л ГО РИ Т М Л Е М П Е Л Я -ЗИ В А -В Е Л Ч А (LEMPEL-ZIV-WELCH - LZW) .......................... 27 Д В У Х СТ У П Е Н Ч А Т О Е К О Д И РО В А Н И Е . А Л ГО РИ Т М Л Е М П Е Л Я -ЗИ В А ............................ 27 К О Д И РО В А Н И Е С П О М О Щ Ь Ю Ц Е П Н Ы Х К О Д О В .......................................................... 29 О РГА Н И ЗА Ц И Я СЖ А Т И Я И ЗО БРА Ж Е Н И Й СО ГЛ А СН О СТ А Н Д А РТ У JPEG ..................... 29 Ф РА К Т А Л Ь Н О Е СЖ А Т И Е И ЗО БРА Ж Е Н И Й .................................................................... 29 РЕ К У РСИ В Н Ы Й (В О Л Н О В О Й ) А Л ГО РИ Т М .................................................................. 31 РА ЗБИ Е Н И Е И СХ О Д Н О ГО М Н О Ж Е СТ В А СИ М В О Л О В Н А Н Е СК О Л ЬК О А Л Ф А В И Т О В ..... 32 СМ Ы СЛ О В А Я А РХ И В А Ц И Я ........................................................................................ 33 П О И СК ЗА К О Н О М Е РН О СТ Е Й ..................................................................................... 34 В Ы Б О Р А Л ГО РИ Т М А А РХ И В А Ц И И .............................................................................. 34 Л И ТЕ РАТУ РА ....................................................................................................... 35
Составитель Редактор
К ры ж анов ская Ю лианаА лександров на Т ихомиров аО .А .