ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode


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


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

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

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

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


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

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

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

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

 

 

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

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

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

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

 

 

4.7/5 - (13 голосов)



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

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

Ваш адрес email не будет опубликован.