● Сегодня взлом криптографических систем на практике осуществим только косвенными методами — с помощью подкупа или насилия в отношении лиц, обладающих ключом, с помощью шпионажа или прослушивания, с помощью незаметной модификации оборудования или программ, используемых для шифрования.
Шифрование с открытым ключом
Как паспорт подтверждает личность его владельца в реальном мире, так инфраструктура открытого ключа (PKI, public key infrastructure) позволяет подтвердить личность в мире компьютерных сетей.
PKI гарантирует, что всякий, кто выдает себя за определенную персону, действительно ею является, что крайне важно при проведении ответственных трансакций, таких как размещение заказов или пересылка денег.
Суть PKI заключается в использовании очень длинных целых чисел, называемых ключами. Используются два ключа: частный, доступ к которому имеете только вы, и открытый, с которым может работать кто угодно. Оба ключа используются вместе, и сообщение, зашифрованное с помощью частного ключа, может быть расшифровано только с помощью открытого ключа и наоборот. Точно так же как вы подтверждаете свою личность с помощью выполненной от руки подписи, цифровая подпись подтверждает вашу личность в сети. Документ, который предполагается зашифровать, «пропускается» через сложный математический алгоритм, который на выходе выдает одно большое число, называемое хеш-кодом. Если в сообщение внести даже минимальные изменения, например, переставить запятую, то хеш-код полностью изменится.
Чтобы добавить цифровую подпись к документу, хеш-код, созданный на основе его содержимого, шифруется с помощью частного ключа пользователя (назовем его Боб). Другой человек (Алиса) может проверить подлинность документа, расшифровав хеш-код с помощью открытого ключа Боба и сравнив его с хеш-кодом, сгенерированным из полученных данных.
Если хеш-коды совпадают, данные не были изменены третьей стороной — создать такую подпись возможно, только обладая частным ключом Боба. Однако злоумышленник мог подменить открытый ключ Боба в тот момент, когда Алиса впервые получила его.