Симметрическое шифрование как способ шифрования, в котором применяется один и тот же криптографический ключ. Функции стандартного диалогового окна открытия и сохранения файла. Характерная схема действий при генерации подписи. Цифровая подпись файла.
Аннотация к работе
По мере перехода от эпохи индустриальной цивилизации к преимущественно информационной роль накопленных и соответствующим образом обработанных знаний заметно возрастает. Появление же и стремительное развитие компьютерных сетей обеспечило эффективные способы передачи данных и быстрый доступ к информации как для отдельных людей, так и для больших организаций. Однако локальные и глобальные компьютерные сети, впрочем, как и другие способы передачи информации, могут представлять угрозу для безопасности данных, особенно при отсутствии адекватных мер их защиты от несанкционированного доступа. Они обеспечивают конфиденциальность, секретность, доверие, авторизацию, электронные платежи, корпоративную безопасность и бесчисленное множество других важных атрибутов современной жизни. В связи с этим наличие встроенных механизмов защиты информации и эффективность их работы в прикладных системах все чаще приобретает определяющее значение при выборе потребителями оптимального решения.В связи с явной сетевой направленностью языка Java потребовалось уделить должное внимание средствам защиты. В первую очередь это касается пересылки важных данных между, например, клиентом и сервером, а также запуска программ или апплетов. Примером необходимости защиты может служить желание пользователя-получателя иметь возможность верификации, что дает определенные гарантии подлинности документа или кода..Например, для использования DSA (Digital Signature Algorithm) и провайдера SUN необходимо писать: KEYPAIRGENERATOR KEYGEN = KEYPAIRGENERATOR.GETINSTANCE("DSA", "SUN"); В первую очередь необходимо создать объект класса Signature, вызвав метод GETINSTANCE(): Signature dsa = Signature.GETINSTANCE("SHA1WITHDSA", "SUN"); Затем идет процесс инициализации подписи ключом. На последнем этапе генерируется сама подпись, которая представляется в виде байтового массива. byte[] REALSIG = dsa.sign(); Для этого можно воспользоваться классом KEYFACTORY, который по спецификации ключа может восстановить объект класса Key (PRIVATEKEY и PUBLICKEY являются потомками класса Key).Симметрическое шифрование - способ шифрования, в котором для (за)шифрования и расшифрования применяется один и тот же криптографический ключ. В первую очередь нам понадобится класс javax.crypto.Cipher, который реализует базовые функции популярных криптографических алгоритмов шифрования. Для создания экземпляра такого класса используется статистический метод Cipher.GETINSTANCE , который в качестве параметра получает имя криптографического алгоритма шифрования. Следующим шагом будет инициализация экземпляра класса и указание каком режиме он будет работать: в режиме шифрования chr.init(Cipher.ENCRYPT_MODE, key); -, или расщифрования - chr.init(Cipher.DECRYPT_MODE, key);Для того, чтобы объект был сериализуемым, класс этого объекта должен реализовывать интерфейс java.io.Serializable.Swing содержит готовое окно для выбора файла (полезное, например, для программирования пункта меню Файл-> Открыть). Этот метод возвращает результат действий пользователя по выбору файла, который сравнивается с одной из следующих констант: APPROVE_OPTION - выбор файла прошел успешно. CANCEL_OPTION - пользователь отменил выбор файла, щелкнув на кнопке Cancel. ERROR_OPTION - при выборе файла произошла ошибка, либо пользователь закрыл диалоговое окно крестиком.Для шифрования файла нажать на кнопку «Зкодировать файл» главного меню программы (Рис. 3.1), после чего откроется стандартное диалоговое окно для открытия файла (Рис. После этого откроется стандартное диалоговое окно для сохранения файлов (Рис.Для расшифровки закодированного файла необходимо выбрать в главном окне программы (Рис 3.1) пункт меню «расшифровать файл».3.1) выбрать пункт меню «Подписать файл». После чего выводиться сообщение о успешном создании цифровой подписи и в директории с эти файлом создается файл с таким же именем и расширением .sig - это цифровая подпись и с расширением .pubkey - это публичный ключ для проверки цифровой подписи. 3.1) выбрать пункт меню «Проверить цифровую подпись». После чего необходимо указать путь к проверяемому файлу, путь к файлу с цифровой подписью и файл с публичным ключом. В случае корректного указания всех файлов и неизменности проверяемого файла выдается сообщение, что верификация прошла успешно.@SUPPRESSWARNINGS("deprecation") public static void main(String[] args){import javax.crypto.Cipher; ecipher.init(Cipher.ENCRYPT_MODE, key); dcipher.init(Cipher.DECRYPT_MODE, key); ecipher.init(Cipher.ENCRYPT_MODE, key); dcipher.init(Cipher.DECRYPT_MODE, key);import java.security.KEYFACTORY; import java.security.KEYPAIR; import java.security.Signature; public class DIGITALSIGNATURE {public static void SAVETOFILE (byte[] info, String filename) {try { } catch (Exception e) {info = new byte[0];} return(info);Код класса FINTERFACEFORM import java.awt.Button; Button bt_enc = new Button("Закодировать файл"); Button bt_dec = new Button("Расшифровать файл"); Button bt_
План
Содержание
Введение
1. Анализ предметной области
1.1 Описание задачи
2.Реализация проекта
2.1 Реализация цифровой подриси файлов
2.2 Реализация алгоритма DES для шифрования и расшифровки файла
2.3 Запись ключей в класс с помощью сериализации
2.4 Стандартные диалоговые окна открытия и сохранения файла
3. Работа с приложением
3.1 Шифрование файла
3.2 Расшифровка закодированого файла
3.3 Создания цифровой подписи файла
3.4 Проверка цифровой подписи файла
Перечень ссылок
Приложение А Приложение Б
Приложение В
Приложение Г
Введение
симметрический шифрование цифровой файл
По мере перехода от эпохи индустриальной цивилизации к преимущественно информационной роль накопленных и соответствующим образом обработанных знаний заметно возрастает. Появление же и стремительное развитие компьютерных сетей обеспечило эффективные способы передачи данных и быстрый доступ к информации как для отдельных людей, так и для больших организаций. Однако локальные и глобальные компьютерные сети, впрочем, как и другие способы передачи информации, могут представлять угрозу для безопасности данных, особенно при отсутствии адекватных мер их защиты от несанкционированного доступа.
Таким образом, сейчас, по мере становления информационного общества средства защиты становятся одними из основных инструментов. Они обеспечивают конфиденциальность, секретность, доверие, авторизацию, электронные платежи, корпоративную безопасность и бесчисленное множество других важных атрибутов современной жизни.
В связи с этим наличие встроенных механизмов защиты информации и эффективность их работы в прикладных системах все чаще приобретает определяющее значение при выборе потребителями оптимального решения. Поэтому данным вопросам уже давно уделяют внимание разработчики программных средств. Должный уровень защиты могут обеспечить криптографические методы.
Существует несколько подходов к решению поставленной задачи.
Во-первых, можно попытаться создать абсолютно надежный и недоступный другим канал связи. К сожалению, достичь этого крайне сложно, по крайней мере, на существующем уровне современного развития науки и техники, которые предоставляют методы и средства не только передачи информации, но и несанкционированного к ней доступа.
Вторым подходом является использование общедоступных каналов связи и скрытие самого факта передачи какой-либо информации. Данным направлением занимается наука стенография. К сожалению, методы стенографии не могут гарантировать высокий уровень конфиденциальности информации.
Третий способ - это использовать общедоступный канал связи, но передавать данные в преобразованном виде, так чтобы восстановить их мог лишь адресат. Разработкой методов преобразования информации, обеспечивающей ее шифрование, и занимается криптография.
Стоит отметить, что криптосистема работает по определенной методологии (процедуре).
Эта методология предусматривает использование: ? одного или более алгоритмов шифрования, которые можно выразить в виде математических формул;
? ключей, используемых данными алгоритмами шифрования, ? системы управления ключами, ? незашифрованного текста, ? зашифрованного текста (шифртекста).