Искусство программирования на Си (984073), страница 80
Текст из файла (страница 80)
Йз хешированных данных очень сложно привлекательным лля приложений, которые выпол- используют один из этих трех принципов получить исходные данные нли найти другис данные, /' Закоачять дпявой сообяеввя '/ ннсм аз„и, „, - ., м [)!%е-Не)[шап (назван по именам своих разработчиннсм различных ключей. Кроме того, он обсспечикоторые после хеширования дадут тот же результат.
Раддед[ппм 61оскз * 14 — 21 = 1еп» 291 ков): система обмена ключами основана на лискрет- Управленис национальной безопасности сшА в ка- раддед[ппм ьуоскз ' 16 — 11 = 1еп «з; васт высок>ю скоросп, и безопасность. Алгоритм не ных логарифмах в финитных полях, созданных честве части Стандарта безопасного хеширования разбольшими простыми числами. Этот алгоритм был работало 5НА-1 (5есцге Наьй А!допгйгп-1 — Алгоритм- ° Яегрепг: этот алгоритм имеет низк>ю скорость, но псрвои предложенной системой и в настоящее врс- 1 безопасного хеширования). Хотя ВНА-1 — достаточно К счастью, 5НА-1 имеет лишь несколько "магичесзато дает высокий уровень безопасности.
Он нс тре- мя используется очень широко. Он положен в осно- сложный ачгоритм, тем нс менее, он якчяется нанлуч- ких" констант н только трн функции перестановки. Сам буст бол1илого объема памя ти н может хорошо про- в> нескольких других систем шифрования, включая шнм вариантом для приложений, которые требуют хс- алгоритм ловольно прост: каждьШ блок для обработки тпвостоять направленным атакам. Х0.42 —. стандартную сисзсму АН5! (Национально- ширования. подается на вход основнон фунлпин хеширования а ° Тмобьй алгорнтхц прслставлсннын компанией го института стандартизации США). 5НА-1 ласт 160-битовый профиль сообщения и ра- профиль сообшення — это сумма профилей каждого Сошпсграпс 5>ысшх — разработчиком аягоритма ° [(ЬА (назван по имен 'назван по именам разра отчиков сбтеьг, бпппг б к,нй ботает с блоками, имеюшими фиксированную дэнн> блока (лнстннг 26 3).
В[оигГм!ь Как и В!огибай, алгоритм Тъойзй нс зала- н Агйсшап) полная дв н сшап полная двухключсвая сиг.тема, вьшолня- 512 битов (листинг 26.2). Поскольку он требует разбивки Листинг 26.3. Реализация алгоритма 6НА-1. тснтован, авторские прапа на нсго нс зашншсны, и кхцая как распростра как распространение ключеи, так и созланис входного сообщения на блоки фиксированной длины, он доступен бесплатно лля всех пользователей. 1зиф!ЗОВЫХ ПОДПИСЕЙ. 11 то часто приходится дополнять блоки незначащей ин- 1>н ровых подписей.
Система основана на сложно- Объяввть твп Бвв 1 у как указатель ва Тъобкб очень бсзопассн и имеет очень высокую формацией. ВНА-1 имеет особую н достаточно необычс и азложсння юльшнх целых чисел на простые фуякцвпг работаяяуо с тремя 32-бвтовммв скорость работы. Алгоритм в высокой степени гибок, множи лн ную функцию заполнения, которая лобавляет к биту, Доооли от ее он ие ежи им ические разде зи ч Шиййроваиие Часть )И вЂ” — — 4 Глава 26 ( Еег(з = 0; х < 5; з++) Ох5А827999, Режимы работы ° Ееу — секретныи ключ, который используется лля ОхбЕО9ЕВА1, 010евЦ[) += еЕЕвеС[1)1 шиф]ювания и дсшифрогозния сообщении.
Размер клю- ОхВР1ВВСОС, ) Программы шиф)зовани мог>т использоваться в одном рс, зго итззтьз 14/нли разхзс м бчока ОхСА62С106 из нескольких возможных рсзкимов. Каждый режим ° оп8[п — вектор инициализации. Это значение трс- )7 определяет набор выполняслзых над открьными или /е / 8 случае еввбкв ваавратвть О е/ зашифрованными даннылзи операций до и после само- боется лля большинства вежинов лля начала шиф/* Фувхцвв ВВА 1 Р */ 'аС ВНА 1 Еп)1( рования изи лешпфрования Зна ~ение опйш вес~да ВНА 1 Р сопвС Р]4; го шифрования.
Эти операции служат лля обеспечения Ьуее С еоввС* ав0, имеет тип Ыосй 4 и должно быть уникальным. йаВА 1 РО, в)ОС64 С 1 еще более высокого >ровня безопасности, чем может 1еп, йЯНА 1 Р1РЗ, вбве32 С 019евС[5] обеспечить сам алгоритм. Даже самые мощныс алгорнт- ° епсгур[о — основная функция шифрования. В качс- йЯВА 1 Р2, ) мы шифрования почти ничего не стоят, если их исполь- стве аргумента принимает один блок открытого тск- йаНА 1 Р1РЗ ( зовать в слабом рсжилзс. ста и кпоч, возвращает один блок зашифрованного а[аС32 С сеевС егЕОзп[5] В Р]РБ 81 (федсральный стандарт по обработке ин- текста. Эта функция реализована в соответствии с взеС32 С Сав)в[80); ( Ох67452301, формации) и в ЛЫ81 ХЗ.! 06-1983 (стандарт Националь- выбранным алгоритмом шифрования (РЕ8, Тпо]ВЬ взвС32 С оЕЕаеС[5)- ОхЕРСОАВ89, ного института стандартизации СШЛ) описаны чсмярс и т-д.)- в[пС32 С Севр; Ох98ВАОСРЕ режима работы.
Было предложено несколько нсстанлар- ° Вест>р[Π— основная ф>нкция дешифрования, про(ее Ох10325476, тных рсжимоп работы, но нс рекомендуется пользовал,ся тивоположная по своем> действию функции ОхСЗО281РО ): ци одним из них, если у вас нет на то особой причины. епсгурс(). В качестве арг>мента принимает олин в1аС32 С» 00 01 ра е При описании каждого режима булут использовать- блок зашифрованного текста и ключ, возвращает ~~ге Шпфрппанит Дополни тат ание тскптичпопип ралдл ги зь! Масть ш Глава 26 1 ° Листинг 26.4. Режим кодовой электронной книги.
Листинг 26.6. Режим обратной связи по выходу. текста. В режимах, описанных выше, текст просто состоял из блакая и различие между элементами и блоками ие ча(а епсгур11ап( чазе епсгуртзоп( проводилось, иа и более сложных режимах с обратной Ь1оск С сапах р1а1пхехх[[, Ь1осх С совах р1а1пхехс[], связью эта различие может иметь значение.
Ыоск 1 схрЬегеехс[ [, Ыаск С с1рпегхехв[], эхге С 1еп, вхге Е 1еп, Когда знв ~анис ЕЕЕМЕ]ЧТВ!ХЕ равно значению )геу г )сеу) хе с хе ( еу еу, В].ОСКВ]ХЕ, все становится гораздо проша, исключая Ыосх С аг(д(п) хпг хг ( необходимость в отлсльном тиос е]сшеп( 1 и использо(ог[1 = 01 1 < 1епз х++) хпс ванин сдвига и однои временной псрсмсннои (листинг Ыосх С СеврГ 26.8). Но обратите вниманис, что, в отличие от режима с1рпегхехх[з] = епсгурС(р1а]атеях[1], Ье ['] у); с обратнои связью по в~~ходу использованис зна ~енин ЕЕЕМЕ]ь]ТЯ7Е, нс равных ВЕОСКЯУЕ, нс приводит к снижению безопасности, а только к усложнсникт кода.
чо)В г[есгурхзап[ ( Рскомснлустся использовать режим шифрованной а|оса С сапах с1рпегхехх[], Севр = епсгурх(тавр, Ьеу); обратной связи при ЕЬЕМЕ[ь]ТВ]УЕ==ВЕОСКВ]ХЕ. Ыаск 1 р1а(псехх[], с1рпегсехх[1] = Р1ахпхех [ ] РГ Ьх "Сев Это — рсшснис срсднсго уровня сложности, позволяювзхе С 1еп Хеу Г Ьеу) шсс выполнять бысгрос гпифрованис/дешифрование с ) ( помошью только одной функции епсгур(О. Г[ри исто(г[ Оесгурх(оп( ключснии необходимости использования функнии Шифр а глава 26 Дан пан ив ел нные в<натаяв<иеран)а 1ы ~Щ— Часть (и сгрЬегьехС[0) = р1а1птехп[0) " епсгуРС(оггдьп, Ьеу) Листинг 26.7. Режим шифрованной обратной связи чоки епсгуртгоп( тот[1 = 1; г < 1еп; г++) е1евепт С сонат р1агпгехг[), е1евепт С сьрЬегтехт(], сгрЬегтехт[1[ Ыхе С 1еп, рьагптехт[г) " епсгурт(сгрЬегтехь[г — 1), Ьеу!' Ьеу С Ьеу, Ыоск С огьд1п) ) ( пс чо10 бесгур11оп( Ыосх С СевР1 Ыоск С соппг С1РЬегпехС[], Ыосх С р1агпкехь[), Севр = оггдгп п1ге с 1еп, сгрЬегкехт[0] Ьеу С Ьеу, р1агптехС[0) Ыоск С оггдгп) епсгурс(севр, кеу) » вьосквькк — кькмкяткткк г ( (1 « кькнквтктхк) 1пс 1; тот(1 = 11 1 < 1еп; г++) р1агпьехт[0] = сьрЬегтехт[0] епсгурт(огьд1п, Ьеу); ( Севр = Севр « КЬКИКВтКЬКК ! сгрп техт(1 - 1[; 1ог(г = 1; г < 1еп: 1++) с1РЬегтехт( г) ш д ° кещщ Глава 2б ЫЛЙ дополнятеялялс таяаожлггхиершдезы йй~ Ча ть |И и и Обеспечение аутентичности открытого лсльного выполнения, поскольку в большинстве случажен будет перебрать все возможныс комбинации 2~6 ПроСто добаВЬтЕ СОЛИ битов.
Высока вероятность того, что быстрый гшгоритм ключа св безопасность обеспечивается именно благодаря пос- В любыс сскрстныс данные, которые обрабатываются потолику и быстрый, что он выполняет мало функций, лсдоватсльному выполнению операций. любой функцией безопасности в целях их шифрования, В криптосистемах с двух~я кчючами тот факт, что взлом- Будьтс обеспечивая либо очень низкий уровень защиты, либо удьтс осторожны при повышении производитсль- хсширования или с любой другой целью, сначаза нсоб- шик знает открытый ключ, как правило, не вызывает ности за с б ..
Н вообще не обеспечивая сс. Самый быстрый метод шифности за счет снижения уровня беюпасности. Нссомнсн- ходимо добавить "соли". "Соль" — это уникальное зна- никаких проблем. Однако при некого ых обстоятсль- рования и самый незащищенный — юо цросзо Р но, шифрование с более низким уровнем безопасности чсние, добавзясмос к секретным данным для того. что- ствах взломщик может перехватить пе сдач также от- Р 'У может быть выполнено гораздо быстрее, чем шифровас~рьсггехчщ =р! азвгехгЯ. бы результируюгдую последовательность нельзя было крытого ключа и подменить оба ключа другими кзючаРу — нис с более высоким уровнем безопасности, но сниже- СЛИШКОМ ВЫСОКИЙ урОВЕНЬ бЕЗОПВСНОСти повторить.
Главное требование к такой "соли" — это ее ми. Если взломщик сможет убслить пользователя, что нис уровня безопасности при этом часто нсдооцснива- униказьность. Можно использова~ь случаиныс числа, тот получил открытый кшоч от д ужсствснно~о пользо- Р. стоя. Если вы уверены, что некоторый алгоритм Как ни странно, можно выполнять шифрование со врсмснныс метки, индексы или друвис значения, кото- ватсля, то взломщик может выдать себя за этого пользо- обсспсчивает достаточно высокий уровень безопаснос- слишкоь~ высоким уровнем безопасности.
Котла уровень рыс можно сделать униказьными. Коне~апта нс может ватсля и получать все сообщения, п едназначенныс зя Р д ти, можстс попробовать провести его оптимизацию и безопасности считается цчишком высоким' Котла вы нс быть хорошси "солью", поскольку она будет униксльч дружественного пользователя, и сможет подделать лю- повышагь его быстродействие до тех пор, пока резуль- совсем понимастс, что делаете или как это лолжно быть нои только при первом использовании.
Каждыи стан- бос сообщение от этого польюватсля. Поэтол~ пользо- У - тат рабо~ы алгоризма или сам алгоритм нс изменятся сделано. Простое копирование кола является одним из дартный режим шифрования, за исключением просто- ватслям такой системы необходимо с едство лля нов 'р д- таким образом, что это может поставить под угрозу бс- пучей создания слабых мест. Нсобхолимо изучить при- го рсжил~а кодовой электронной книги, лля его тверждсния аутенти«ности (подлинностго их отк ытых Р зопасность данных Если некоторые способы оз1зимгц меры использования сильных алгоритмов шифрования псрвоначазьных данных требует, по краинсй мсрс, ол- ключсй. зации представляют очевидную угрозу безопасности, то попытаться их понять и только после это|о ~зриступать ного блока "соли".