Цифровая подпись файла — это комплекс мероприятий направленный на проверку подлинности и целостности файла после его передачи. В настоящей статье рассматривается принцип создания цифровой подписи; также приводится реализация программы на языке C#, демонстрирующей данную технологию.
Итак, цифровая подпись файла может быть использована для проверки безошибочности доставки файла адресату (не потеряна ли была во время передачи какая-либо информация) и доставлен ли оригинальный файл без умышленных искажений (не было ли воздействий со стороны злоумышленников на передаваемые данные).
Определение 1. Хеширование — вычисление над данными хеш-функции (определенного алгоритма). Полученное значение с огромной долей вероятности уникально для конкретных исходных данных. Значение хеш-функции считается необратимым, т. е. получить по хешу исходные данные за приемлемое время — невозможно.
Цифровая подпись файла реализуется следующим образом: над содержимым файла вычисляется хеш-функция, затем значение хеша шифруется алгоритмом RSA, и эта зашифрованная последовательность передается также адресату. Адресат, получив файл и шифровку:
- вычисляет над содержимым файла значение хеш-функции;
- расшифровывает алгоритмом RSA полученную шифровку, получая тем самым значение переданного хеша;
- сравнивает значения вычисленного им самим хеша с полученным значением.
Если значения совпадают, значит файл подлинный и подпись верна, в противном случае файл не подлинный и отличается от того, который передавал отправитель.
Приведем исходный код программы на языке C#, реализующей цифровую подпись файла, а также проверку подлинности файла. Скачать исходник можно, нажав на кнопку:
Скачать исходник
На рисунке номер 1 изображен пользовательский интерфейс программы.
В реализации программы мы использовали хеш-функцию GetHashCode() класса string из .NET. В качестве хеша она возвращает целое число int.
Поделиться в соц. сетях: