Цифровая подпись файла

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

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

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

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

  1. вычисляет над содержимым файла значение хеш-функции;
  2. расшифровывает алгоритмом RSA полученную шифровку, получая тем самым значение переданного хеша;
  3. сравнивает значения вычисленного им самим хеша с полученным значением.

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

Приведем исходный код программы на языке C#, реализующей цифровую подпись файла, а также проверку подлинности файла. Скачать исходник можно, нажав на кнопку:

Скачать исходник

 

 

На рисунке номер 1 изображен пользовательский интерфейс программы.

Цифровая подпись файла. Скриншот программы

Рисунок 1. Интерфейс программы

В реализации программы мы использовали хеш-функцию GetHashCode() класса string из .NET. В качестве хеша она возвращает целое число int.

 

 

Цифровая подпись файла
5 (100%) 5 votes

Поделиться в соц. сетях:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">