Контроль целостности информации

В процессе хранения и передачи инфы могут происходить ошибки. Приемнику и передатчику инфы следует знать, что данные в потоке должны соответствовать определенным правилам. Приводя реальный поток в соответствие с этими правилами, приемник может вернуть его начальное содержание. Количество и типы фактически восстановимых ошибок определяются используемыми правилами кодировки. Всегда существует порог ошибок Контроль целостности информации в сообщении, после которого сообщение не поддается даже частичному восстановлению. Соответствие потока данных тем либо другим правилам теория инфы обрисовывает как наличие статистических автокорреляций либо информационной избыточности в потоке. Такие данные всегда будут больше по объему, чем начальные.

Естественные языки обеспечивают очень высшую (в письменной форме двух- и трехкратную, а Контроль целостности информации в речевой – еще огромную) избыточность за счет внедрения сложных фонетических, лексических и синтаксических правил. Одним из методов увеличения избыточности людской речи является применение стихов. Но совладать с задачей восстановления таковой инфы способен только человечий мозг. Потому правила кодировки, используемые в вычислительных системах, должны удовлетворять не только лишь требованиям теоретико Контроль целостности информации-информационной оптимальности, да и быть довольно ординарны для программной либо аппаратной реализации.

Простым методом внесения избыточности является полное дублирование данных. При всем этом избыточность этого способа очень велика для большинства применений, а, не считая того, данный способ позволяет только найти ошибку, но не убрать ее. Трехкратное копирование в ряде Контроль целостности информации всевозможных случаев позволяет не только лишь найти, да и убрать ошибку. Видно, что ряд способов позволяет только найти ошибку, а другие – и вернуть ее. Все данные, с которыми работают современные вычислительные системы, представляют собой последовательности битов, потому разглядим только такие последовательности.

Простым из методов кодировки с Контроль целостности информации обнаружение ошибок – это бит четности. В этом случае блок дополняется битом для того, чтоб общая сумма битов была четной либо нечетной. Данный метод позволяет выявить ошибку об одном бите.

Более непростая схема – это CRC (Cycle Redundancy Code) – повторяющийся лишний код. При вычислении CRC разрядности N выбирают число R требуемой разрядности Контроль целостности информации и вычисляют остаток от деления на R блока данных, сдвинутое на лево на N битов. Двоичное число, образованное блоком данных и остатком, делится на R и это можно использовать для проверки целостности блока.

Обычный способ кодировки, позволяющий не только лишь обнаруживать, да и устранять ошибки, именуется блочной либо Контроль целостности информации параллельной четностью и заключается в том, что мы записываем блок данных в виде двухмерной матрицы и подсчитываем бит четности для каждого столбца и каждой строчки. При одиночной ошибке, таким макаром, просто найти бит, который содержит ошибку.

Обширно используемый код Хэмминга находится в близком родстве с параллельной четностью. Его мысль заключается в Контроль целостности информации том, чтоб пичкать каждый блок несколькими битами четности, подсчитанными по разным совокупностям битов данных. Этот код гарантирует обнаружение одиночной ошибки (в отличие от CRC, который имеет всего только возможность обнаружения ошибки). Этот код позволяет убрать одиночную ошибку в блоке. Для работы метода нужно делать соотношение

где – количество битов данных, – разрядность Контроль целостности информации контрольного кода.

Если это уравнение преобразуется в равенство, то этот код именуют хорошим кодом Хэмминга.

Нередко оказывается прибыльно, как это ни удивительно, соединять упаковку данных с их лишним кодировкой. При всем этом достигается уменьшение передаваемой либо хранимой инфы при условии ее защиты от ошибок ее передачи.

Введение в тайнописью

При передаче Контроль целостности информации либо хранении данных нередко появляется задачка защиты инфы от ненужного чтения. В большинстве случаев в данном случае употребляют один из способов криптографии (от греческого криптография). В отличие от большинства определений компьютерной лексики это слово не британского, а греческого происхождения.

История криптографии насчитывает тыщи лет, и многие основополагающие принципы современной Контроль целостности информации криптографии известны, может быть, с доисторических времен, но, значимый прогресс в теории шифрования был достигнут только относительно не так давно, в связи с разработкой современной теории инфы.

Фактически все способы криптографии сводятся к преобразованию данных в набор из конечного количества знаков и осуществлению над этими знаками 2-ух Контроль целостности информации главных операций: подстановки и перестановки. Подстановка состоит в подмене одних знаков на другие. Перестановка состоит в изменении порядка знаков. В качестве знаков при всем этом могут выступать разные элементы сообщения – так, при шифровании сообщений на естественных языках подстановке и перестановке могут подвергаться как отдельные буковкы, так и слова Контроль целостности информации либо даже целые предложения (как, к примеру, в аллегоричных изложениях волшебных и священных текстов). В современных методах этим операциям в большинстве случаев подвергаются блоки поочередных битов. Некие методики можно обрисовать как воплощение операции подстановки над полным сообщением. Подстановки и перестановки выполняются по определенным правилам. При всем этом надежда возлагается Контроль целостности информации на то, что эти правила и/либо применяемые в их характеристики известны только создателю и получателю шифрованного сообщения и неопознаны сторонним лицам. В докомпьютерную эру старались засекретить обе составляющие процесса шифрования. На данный момент для шифрования, обычно, употребляют стандартные методы, секретность же сообщения достигается методом засекречивания применяемого методом параметра, ключа (key Контроль целостности информации). Чтение секретного сообщения сторонним лицом, на теоретическом уровне, может быть осуществлено 2-мя методами: похищением главного значения или его угадыванием методом анализа перехваченной шифровки. Если 1-ое мероприятие может быть предотвращено только физической и организационной защитой, то возможность второго определяется применяемым методом. Ниже мы будем именовать процесс анализа шифровки Контроль целостности информации взломом шифра, а человека, осуществляющего этот процесс, – взломщиком. По-научному эта деятельность именуется более не положительно и не отрицательно – криптоанализ. Например, сообщение на естественном языке, зашифрованное подстановкой отдельных букв, уязвимо для частотного анализа: основываясь на том факте, что разные буковкы встречаются в текстах с разной частотой, взломщик просто – и с Контроль целостности информации очень высочайшей достоверностью – может вернуть таблицу подстановки. Есть и другие примеры неудачных алгоритмов, которые сохраняют в неприкосновенности те либо другие присутствовавшие в сообщении автокорреляции – каждый таковой параметр можно использовать как базу для восстановления текста сообщения либо обнаружения ключа.

Устойчивость шифра к поиску автокорреляций в сообщении именуется криптостойкостью метода Контроль целостности информации. Даже при использовании успешных в этом смысле алгоритмов, если взломщик знает, что начальные (нешифрованные) данные удовлетворяют тому либо иному требованию, к примеру, содержат определенное слово либо снабжены лишним кодом, он может произвести полный перебор места ключей: перебирать все значения ключа, допускаемые методом, пока не будет получено удовлетворяющее требованию сообщение. При Контроль целостности информации использовании ключей довольно большой разрядности такая атака оказывается чрезвычайно дорогой, но прогресс вычислительной техники повсевременно сдвигает границу "достаточности" все далее и далее. Так, сеть распределенных вычислений Bovine в 1998 году взломала сообщение, зашифрованное методом DES с 56-разрядным ключом за 56 часов работы. Обычным и действенным методом борьбы с таковой атакой является Контроль целостности информации расширение места ключей. Повышение ключа на один бит приводит к повышению места в два раза – таким макаром, линейный рост размера ключа обеспечивает экспоненциальный рост цены перебора. Некие методы шифрования не зависят от разрядности применяемого ключа – в данном случае расширение достигается естественным методом. Если же в методе находится зависимость Контроль целостности информации от разрядности, расширить место можно, всего только применив к сообщению несколько различных преобразований, в том числе и одним методом, но с различными ключами. Очередной метод значительно усложнить работу взломщику – это упаковка сообщения перед шифрованием и/либо дополнение его случайными битами. Принципиально выделить, вобщем, что количество двоичных разрядов ключа является только Контроль целостности информации оценкой объема места ключей сверху, и в почти всех ситуациях эта оценка завышена. Некие методы в силу собственной природы могут использовать только ключи, удовлетворяющие определенному условию – к примеру, RSA употребляет обыкновенные числа. Это резко сузивает объем работы по перебору, потому для обеспечения сравнимой криптостойкости разрядность ключа RSA должна быть намного больше Контроль целостности информации, чем у алгоритмов, допускающих произвольные ключи. Низкая криптостойкость может быть обоснована. не только лишь методом шифрования, да и процедурой выбора ключа: если ключ может принимать любые двоичные значения данной разрядности, но реально для его выбора употребляется страдающий неоднородностью генератор псевдослучайных чисел, мы можем существенно уменьшить объем места, которое реально Контроль целостности информации должен будет перебрать взломщик наших сообщений. Еще ужаснее ситуация, когда в качестве ключа употребляются просто запоминаемые слова естественного языка: в данном случае реальный объем места ключей даже достаточно большой разрядности может измеряться всего только несколькими тыщами разных значений.

Современные методы шифрования делятся на два главных класса: с скрытым и Контроль целостности информации с общественным ключом.

Методы с скрытым ключом, в свою очередь, делятся на потоковые (stream) и блочные (block). Потоковые методы обычно употребляют подстановку знаков без их перестановки. Увеличение криптостойкости при всем этом получается из-за того, что правила подстановки зависят не только лишь от самого заменяемого знака, да Контроль целостности информации и от его позиции в потоке. Примером простого – и в то же время полностью не поддающегося взлому – потокового метода является система Вернама либо разовый блокнот. Система Вернама базирована на ключе, размер которого равен размеру сообщения либо превосходит его. При передаче двоичных данных подстановка осуществляется сложением по модулю 2 (операцией исключающего Контроль целостности информации либо) соответственных битов ключа и сообщения.

Если ключ порожден надежным генератором случайных чисел (к примеру, верно настроенным оцифровщиком термического шума), никакая информация об автокорреляциях в начальном тексте сообщения взломщику не поможет: перебирая полное место ключей, взломщик обязан будет проверить все сообщения, совпадающие по количеству знаков с начальным, в Контроль целостности информации том числе и все сообщения, удовлетворяющие предполагаемому автокорреляционному соотношению. Это преимущество пропадает, если один и тот же ключ будет применен для кодировки нескольких сообщений: взломщик, перехвативший их все, сумеет использовать эти сообщения и догадки об их содержимом при попытках отфильтровать ключ от полезной инфы – отсюда и 2-ое заглавие метода. Применение системы Вернама Контроль целостности информации, таким макаром, связано с дорогостоящей генерацией и, главное, транспортировкой ключей большой длины, и потому она употребляется только в системах критической правительственной и военной связи.

Более удобным оказалось применение в качестве ключа псевдослучайных последовательностей, порождаемых детерминированными методами. В промежутке меж первой и 2-ой глобальными войнами обширное распространение Контроль целостности информации получили шифровальные машины, основанные на механических генераторах таких последовательностей. В большинстве случаев использовались сочетания, получаемые при вращении колес с взаимно ординарными количествами зубцов. Основной угрозой при использовании таких способов шифрования является возможность найти текущую точку последовательности – узнав ее (к примеру, по косвенным признакам догадавшись, что в данной точке сообщения должно быть такое Контроль целостности информации-то слово, и восстановив использовавшийся при ее шифровании элемент ключа), взломщик может продолжить генерацию с той же точки и расшифровать весь предстоящий поток.

В системах цифровой связи обширное применение получили блочные методы, выполняющие над блоками данных фиксированной длины последовательности – время от времени достаточно сложные – перестановок, подстановок и Контроль целостности информации других операций, в большинстве случаев двоичных сложений данных с ключом по какому-либо модулю. В операциях употребляются составляющие ключевика относительно маленькой разрядности. К примеру, обширно используемый блочный метод DES шифрует 64-битные блоки данных 56-битным ключом. Для современной вычислительной техники полный перебор 56-битного места вероятен, потому на данный момент все большее Контроль целостности информации распространение получают методы с большей разрядностью ключа – Blowfish, IDEAL и др.

Шифры с открытым ключом именуются также двухключевыми. Если в методах со сокрытым ключом для кодировки и декодирования сообщений употребляется один и тот же ключ, то тут употребляются два ключа: общественный и приватный. Для чтения сообщения, закодированного общественным ключом Контроль целостности информации, нужен приватный, и напротив. Кроме обыденных суждений криптостойкости, к таким методам предъявляется дополнительное требование: невозможность восстановления приватного ключа по общественному по другому как полным перебором места ключей. Двухключевые схемы шифрования намного труднее в разработке, чем схемы с скрытым ключом: требуется отыскать преобразование, не поддающееся воззванию с помощью применявшегося в Контроль целостности информации нем общественного ключа, но такое, чтоб с применением приватного ключа его все-же можно было направить. Известные криптоустойчивые схемы основаны на произведениях обычных чисел большой разрядности, дискретных логарифмах и эллиптических кривых. Более обширное применение получил разработанный в 1977 г. метод RSA. Известные двухключевые методы требуют соответствия ключей очень Контроль целостности информации специфичным требованиям, потому для заслуги криптостойкости, сравнимой с блочными методами, нужно использовать ключи намного большей разрядности. Так, снятые в 2000 году ограничения Министерства торговли США устанавливали ограничения разрядности ключа, который мог употребляться в экспортируемом за границы США программном обеспечении: для схем с скрытым ключом устанавливался предел, равный 48 битам, а для схем Контроль целостности информации с открытым – 480. Внедрение ключей большой разрядности просит значимых вычислительных издержек, потому двухключевые схемы в большинстве случаев используются в купе с обыкновенными: владелец общественного ключа генерирует случайную последовательность битов, кодирует ее и посылает владельцу приватного ключа. Потом эта последовательность употребляется в качестве секретного ключа для шифрования данных. При установлении Контроль целостности информации двухстороннего соединения стороны могут поначалу поменяться своими общественными ключами, а потом использовать их для установления 2-ух различных скрытых ключей, применяемых для шифрования данных, передаваемых в различных направлениях. Такая схема делает удобной частую смену скрытых ключей: так, в протоколе SSH ключ генерируется на каждую сессию, в протоколе виртуальных приватных сетей IPSEC Контроль целостности информации время жизни ключа ограничено восемью часами. Еще больше обширное применение двухключевые схемы отыскали в области аутентификации и электрической подписи. Электрическая подпись представляет собой контрольную сумму сообщения, зашифрованную приватным ключом отправителя. Каждый владелец соответственного общественного ключа может проверить аутентичность подписи и целостность сообщения. Это может употребляться для проверки аутентичности как сообщения, так Контроль целостности информации и самого отправителя. Внедрение в качестве контрольной суммы обыденного CRC нереально, так как генерация сообщения с данным CRC не представляет вычислительной трудности. Для внедрения в электрической подписи были разработаны особые методы вычисления контрольных сумм, затрудняющие подбор сообщения с требуемой суммой.

Загрузка программ

Так как программка представляет из себя набор Контроль целостности информации машинных кодов, требуется разглядеть функцию ее загрузки в оперативку компьютера (многие из обсуждаемых дальше концепций, вобщем, в известной мере применимы и к прошивке программки в ПЗУ).

Для начала представим, что программка была заблаговременно собрана в некоторый единый самодостаточный объект, именуемый загрузочным либо загружаемым модулем. В ряде операционных систем программка Контроль целостности информации собирается в момент загрузки из огромного числа отдельных модулей, содержащих ссылки друг на друга.

Для того чтоб не путаться, давайте будем именовать программкой ту часть загрузочного модуля, которая содержит исполняемый код. Итог загрузки программки в память будем именовать процессом либо, если нам нужно отличать загруженную программку от процесса ее Контроль целостности информации выполнения, образом процесса. К виду процесса время от времени приравнивают не только лишь код и данные процесса (подвергнутые преобразованию как в процессе загрузки, так и в процессе работы программки), да и системные структуры данных, связанные с этим процессом. В старенькой литературе процесс нередко именуют задачей.

В системах с виртуальной памятью Контроль целостности информации каждому процессу обычно выделяется свое адресное место, потому мы время от времени будем употреблять термин процесс и в этом смысле. Вобщем, в почти всех системах значимая часть адресных пространств различных процессов перекрывается – это употребляется для реализации разделяемого кода и данных. В рамках 1-го процесса может исполняться Контроль целостности информации один либо несколько потоков либо нитей управления.

Некие системы предоставляют и поболее большие структурные единицы, чем процесс. К примеру, в системах семейства Unix есть группы процессов, которые употребляются для реализации логического объединения процессов в задания (job). Ряд систем имеют также понятие сессии – совокупы всех заданий, которые юзер запустил в рамках Контроль целостности информации 1-го сеанса работы. Вобщем, надлежащие концепции нередко плохо определены, а их смысл очень изменяется от одной ОС к другой.

В более старенькых системах и в старенькой литературе именуют итог загрузки задачей, а процессами – отдельные нити управления. Но в более всераспространенных сейчас ОС семейств Unix и Win32, принято задачку именовать процессом, а Контроль целостности информации процесс – нитью (tread).

Абсолютная загрузка

1-ый, самый обычный, вариант заключается в том, что мы всегда будем загружать программку с 1-го и такого же адреса. Это может быть в последующих случаях:

1. Система может предоставить каждому процессу свое адресное место. Это может быть лишь на микропроцессорах, осуществляющих трансляцию виртуального Контроль целостности информации адреса в физический.

2. Система может исполнять в каждый момент только один процесс. Так ведет себя СР/М, так же устроено большая часть загрузочных мониторов для самодельных компов. Схожим образом устроена система RT-11.

Загрузочный файл, применяемый при таком методе загрузки, именуется абсолютным загрузочным модулем.

Изначальное содержимое вида процесса формируется методом обычного копирования Контроль целостности информации модуля в память. В системе RT-11,к примеру, такие файлы имеют расширение sav от saved – сохраненный.

Разделы памяти

Одним из методов обойти невозможность загружать более одной программки при абсолютной загрузке являются разделы памяти. В наше время этот способ фактически не применяется, но в машинах второго поколения употреблялся относительно обширно Контроль целостности информации и нередко описывается в старенькой литературе.

Мысль способа заключается в том, что мы задаем несколько допустимых стартовых адресов для абсолютной загрузки. Каждый таковой адресок определяет раздел памяти. Процесс может располагаться в одном разделе, либо, если это нужно – т. е. если образ процесса очень велик – в нескольких. Это позволяет загружать Контроль целостности информации несколько процессов сразу, сохраняя при всем этом достоинства абсолютной загрузки. Если мы не знаем, в какой из разделов юзер обязан будет загружать нашу программку, мы должны предоставить по отдельному загрузочному модулю на любой из допустимых разделов. Понятно, что это не очень удобно, потому разделы были вытеснены более комфортными схемами управления Контроль целостности информации памятью.

Относительная загрузка

Относительный метод загрузки заключается в том, что мы загружаем программку всякий раз с нового адреса. При всем этом мы должны настроить ее на новые адреса. При использовании в коде программки абсолютной адресации мы должны отыскать адресные поля всех команд, использующих такую адресацию, и перечесть эти Контроль целостности информации адресные поля с учетом реального адреса загрузки. Если в коде программки применялись косвенно-регистровый, базисный и базово-индексный режимы адресации, следует отыскать те места, где в регистр загружается значение адреса.

Сложность тут в том, что если абсолютные адресные поля можно отыскать анализом кодов команд (деассемблированием), то значение в адресный регистр Контроль целостности информации может загружаться за длительное время до фактически адресации, при этом формирование значения регистра может происходить и по частям. На практике содействие программера загрузчику заключается в том, что программер старается без необходимости не использовать в адресных полях и в качестве значений адресных регистров произвольные значения. Заместо этого, программер применяет Контроль целостности информации ассемблерные знаки, надлежащие адресам. Ассемблер при каждой ссылке на таковой знак генерирует не только лишь “заготовку” адреса в коде, да и запись в таблице перемещений (relocation table). Эта запись хранит место ссылки на таковой знак в коде либо данных.

В качестве "заготовки" адреса обычно употребляется смещение адресуемого объекта от начала программки Контроль целостности информации. При настройке программки на реальный адресок загрузки нам, таким макаром, нужно пройти по всем объектам, перечисленным в таблице перемещений, и переместить каждую из ссылок – сформировать из заготовки адресок.

Файл, содержащий таблицу перемещений, еще труднее абсолютного загружаемого модуля и носит заглавие относительного либо перемещаемого загрузочного модуля. Конкретно таковой формат имеют ехе Контроль целостности информации-файлы в системе MS DOS.

Более назидательна тут система RT-11, в какой есть загружаемые модули обоих типов. Обыденные программки имеют расширение sav, представляют собой абсолютные загружаемые модули и грузятся всегда с адреса 01000. Ниже этого волшебного адреса находятся векторы прерываний и стек программки. Сама операционная система вкупе с Контроль целостности информации драйверами располагается в верхних адресах памяти. Естественно, нельзя загрузить сразу два sav-файла.

Но, если непременно необходимо исполнять сразу две программки, можно собрать вторую из их в виде относительного модуля: файла с расширением rel. Такая программка будет загружаться в верхние адреса памяти, всякий раз различные, зависимо от конфигурации ядра системы, количества Контроль целостности информации загруженных драйверов устройств и других геl-модулей.

Базисная адресация

Если мы полагаемся на содействие программера, можно пойти далее: мы объявляем один либо несколько регистров микропроцессора базисными (несколько регистров могут употребляться для адресации разных частей программки, к примеру, один – для кода, другой – для статических данных, 3-ий – для стека) и Контроль целостности информации договариваемся, что значения этих регистров программер воспринимает как данность и никогда сам не видоизменит, зато все адреса в программке он вычисляет на базе значений этих регистров. В данном случае для перемещения программки нам необходимо только поменять значения базисных регистров, и программка даже не выяснит, что загружена с другого адреса. Статически инициализованными Контроль целостности информации указателями в данном случае воспользоваться или нереально, или нужно всегда добавлять к ним значения базисных регистров. Конкретно так происходит загрузка COM-файлов в системе MS DOS. Система выделяет свободную память, настраивает для программки базисные регистры DS и CS, которые именуются сегментными, и передает управление на стартовый адресок. Ничего больше Контроль целостности информации делать не нужно.


konsultativnaya-psihologiya.html
konsultativnij-sovet-evropejskih-prokurorov-palamarchuk-a-v-sechenova-r-r-zimin-v-p-deyatelnost-organov.html
konsultirovanie-detej-zhertv-nasiliya.html