DSA использует следующие параметры:
Целые p, q и g могут быть открытыми и могут быть общими для группы людей. x и y являются закрытым и открытым ключами, соответственно. Параметры x и k используются только для генерации подписи и должны держаться в секрете. Параметр k разный для каждой подписи.
Содержание
Генерация подписи
Подписью сообщения M является пара чисел r и s, где
SHA(M) — 160-битная бинарная строка.
Если r = 0 или s = 0, должно быть сгенерировано новое k и вычислена новая подпись. Если подпись вычислялась правильно, вероятность того, что r = 0 или s = 0 очень мала.
Подпись вместе с сообщением пересылается получателю.
Проверка подписи
Числа p, q, g и открытый ключ находятся в открытом доступе.
Пусть M’, r’ и s’ полученные версии M, r и s, соответственно, и пусть y — открытый ключ. При проверке подписи сначала нужно посмотреть, выполняются ли следующие неравенства:
Если хотя бы одно неравенство не выполнено, подпись должна быть отвергнута. Если условия неравенств выполнены, производятся следующие вычисления:
Если v = r’, то подлинность подписи подтверждена.
Если v ≠ r’, то сообщение могло быть изменено, сообщение могло быть неправильно подписано или сообщение могло быть подписано мошенником. В этом случае полученные данные следует рассматривать как поврежденные.
Генерация простых чисел для DSA
Этот раздел включает алгоритмы для генерации простых чисел p и q для DSA. В этих алгоритмах используется генератор случайных чисел.
Вероятностный тест на простоту
Для генерации простых p и q необходим тест на простоту. Есть несколько быстрых вероятностных тестов. В нашем случае будет использоваться упрощенная версия теста Миллера-Рабина. Если повторить тест n раз, он выдаст простое число с вероятностью ошибки не больше 1/4 n . Для проверки целого числа на простоту нужно:
Генерация простых чисел
Для DSS нужны 2 простых числа p и q, которые должны удовлетворять следующим условиям:
Для генерации простого q: 2 159 160 используется SHA и начальное число SEED. После этого число SEED используется для создания числа X: 2 L-1 L . Простое p получается округлением X таким образом, чтобы полученное число было равно 1 mod 2q.
Пусть L — 1 = n*160 + b, где b и n целые и принимают значения от 0 до 160.
Генерация случайных чисел для DSA
Для любой реализации DSA требуются случайные или псевдослучайные целые числа. Эти числа выбираются при помощи методов описанных в этом разделе или при помощи других одобреных FIPS методов.
Алгоритм в разделе 7.1 может быть использован для генерации x. Алгоритм для k и r описан в разделе 7.2. Алгоритмы изпользуют одностороннюю функцию (функцию, обратное значение которой очень трудно вычислить) G(t, c), где t имеет размер 160 бит, c имеет размер b бит (160 Алгоритм для вычисления m значений числа x
Пусть x — секретный ключ подписывающей стороны. Следующий алгоритм можно использовать для генерации m значений числа x:
Алгоритм для предварительного вычисления k и r
Этот алгоритм может быть использован для предварительного вычисления k, k −1 и r для m сообщений одновременно. Алгоритм:
Шаг 3 дает возможность вычислить величины, необходимые для подписи следующих m сообщений. Шаг 4 выполняться сразу после того, когда получены эти m сообщений.
Создание функции G при помощи SHA
G(t, c) может быть получена при помощи SHA, но перед этим j> и M1 должны быть инициализированы следующим образом:
После этого выполняется SHA [1] и получаем 160-битную строку G(t, c), представленную в виде:
Создание функции G при помощи DES
Пусть a XOR b обозначает побитовое исключающее «ИЛИ» (сложение по модулю 2). Пусть a1, a2, b1, b2 — 32-строки. Пусть b1‘ — 24 младших бита числа b1. Пусть K = b1‘||b2 и A = a1||a2. Обозначим
DESK(A) обозначает обычное DES-шифрование [2] 64-битного блока A при помощи 56-битного ключа K. Предположим, что t и c имеют размер 160 бит каждое. Для вычисления G(t, c):
Генерация других параметров
В этом разделе приведены алгоритмы для генерации g, k −1 и s −1 , которые используются в DSS. Для генерации g:
Для вычисления n −1 mod q, где 0 −1 Пример DSA
Пучсть L = 512 (размер p). В этом примере все величины будут в шестнадцатеричном представлении. Величины p и q были сгенерированы, как описано выше, используя следующее 160-битное значение SEED:
С этим SEED, алгоритм нашел p и q в момент, когда counter = 105. x было сгенерировано при помощи алгоритма, описанного в разделе 7.1, с использованием SHA-1 для генерации G (раздел 7.3) 160-битный XKEY:
k было сгенерировано как описано в разделе 7.2 с использованием SHA-1 для генерации G (раздел 7.3) 160-битный KKEY:
M = слово «abc» из английского алфавита(ASCII)
Примечания
- ↑FIPS PUB 180-1 (англ.) . — описание стандарта SHS. Архивировано из первоисточника 8 апреля 2012.
- ↑FIPS PUB 46-3 (англ.) . — описание стандарта DES. Архивировано из первоисточника 8 апреля 2012.
Ссылки
Зарубежные
- FIPS-186 (англ.) . — the first version of the official DSA specification. Архивировано из первоисточника 8 апреля 2012.
- FIPS-186, change notice No.1 (англ.) . — the first change notice to the first version of the specification. Архивировано из первоисточника 8 апреля 2012.
- FIPS-186-1 (англ.) . — the first revision to the official DSA specification. Архивировано из первоисточника 8 апреля 2012.
- FIPS-186-3 (англ.) . — the third and current revision to the official DSA specification. Архивировано из первоисточника 8 апреля 2012.
- FIPS-186-3 Approval (англ.) . — approval announcement of the third revision to the official DSA specification. Архивировано из первоисточника 8 апреля 2012.
- Recommendation for Key Management — Part 1: general (англ.) . — NIST Special Publication 800-57, p. 62–63.. (недоступная ссылка — история)
Русские
- Алгоритм DSA (рус.) . — краткое описание алгоритма DSA. Архивировано из первоисточника 8 апреля 2012.
Реализация
- DSA-методы (рус.) . — описание методов DSA-класса из библиотеки классов платформы .NET Framework. Архивировано из первоисточника 8 апреля 2012.
Криптосистемы с открытым ключом | |
|---|---|
| Wikimedia Foundation . 2010 . Смотреть что такое "Digital Signature Standard" в других словарях:Digital Signature Standard — Digital Signature Standard, DSS … Universal-Lexikon Digital Signature Standard — Der Digital Signature Algorithm (DSA) ist ein Standard der US Regierung für Digitale Signaturen. Er wurde vom National Institute of Standards and Technology (NIST) im August 1991 für die Verwendung in deren Digital Signature Standard (DSS)… … Deutsch Wikipedia DIGITAL SIGNATURE STANDARD — (DSS) стандарт цифровой подписиалгоритм цифровой подписи, разработанный Агентством национальной безопасности США и предложенный институтом NIST в качестве национального стандарта … Словарь электронного бизнеса Digital Signature Algorithm — The Digital Signature Algorithm (DSA) is a United States Federal Government standard or FIPS for digital signatures. It was proposed by the National Institute of Standards and Technology (NIST) in August 1991 for use in their Digital Signature… … Wikipedia Digital Signature Algorithm — Le Digital Signature Algorithm, plus connu sous le sigle DSA, est un algorithme de signature numérique standardisé par le NIST aux États Unis, du temps où le RSA était encore breveté. Cet algorithme fait partie de la spécification DSS pour… … Wikipédia en Français Digital Signature Algorithm — Der Digital Signature Algorithm (DSA) ist ein Standard der US Regierung für Digitale Signaturen. Er wurde vom National Institute of Standards and Technology (NIST) im August 1991 für die Verwendung in deren Digital Signature Standard (DSS)… … Deutsch Wikipedia DIGITAL SIGNATURE ALGORITHM — (DSA) схема цифровой подписи, разработанная NIST на основе алгоритма Эль Гамаля (также известна как Digital Signature Standard, DSS). Использует тот же тип ключей, что и алгоритм Диффи Хельмана, работает быстрее RSA … Словарь электронного бизнеса Digital Signature Services — (DSS) is an OASIS standard. The Digital Signature Services (DSS) specifications describe two XML based request/response protocols – a signing protocol and a verifying protocol. Through these protocols a client can send documents to a server and… … Wikipedia Digital Signature Transponder — The Texas Instruments Digital Signature Transponder (DST) is a cryptographically enabled radio frequency >Wikipedia Elliptic curve digital signature algorithm — (ECDSA) est un algorithme de signature numérique à clé publique, variante de DSA il fait appel à la cryptographie sur les courbes elliptiques. Sommaire 1 Introduction 2 Algorithme 2.1 Préparation des clé … Wikipédia en Français я уже google’ing разницу между цифровой подписи и цифрового сертификата (асимметричное шифрование), кажется, что они одинаковы. Я хотел бы уточнить, если они такие же или нет? большое спасибо. Цифровая подпись используется для проверки сообщения. Это в основном зашифрованный хэш (шифруется закрытым ключом отправителя) сообщений. Получатель может проверить , было ли сообщение подделано путем хэширования принятого сообщения и сравнивая это значение с расшифрованной подписью. Для расшифровки подписи, требуется соответствующий открытый ключ. Цифровой сертификат используется для связывания открытых ключей лицам или другим субъектам. Если бы не было никаких свидетельств того , подпись может быть легко подделать, так как получатель не может проверить , если открытый ключ принадлежит отправителю. Сам сертификат подписан доверенным третьей стороной, в центре сертификации , как VeriSign. Позвольте мне расширить объяснения Эшли. Как и со всеми вещами крипто, предположим, Алиса (отправитель) хочет послать защищенное сообщение Бобу (получателя) Есть две проблемы решить здесь.
Обе эти проблемы могут быть решены с помощью криптографии с открытым ключом. Для (1) Алиса шифрует сообщение с помощью открытого ключа Боба. Когда Боб получает сообщение, он может надежно расшифровать его с помощью своего закрытого ключа. Так шифрование с открытым ключом Боба и расшифровать с закрытым ключом Боба (это основной материал в открытых ключах крипты) Для решения задачи (2), Алиса также посылает цифровую подпись вместе с зашифрованным сообщением. Это делается следующим образом:
Когда Боб получает сообщение + цифровой подписи он будет:
Что касается цифровых сертификатов, обратите внимание, что Алиса использует шифрование исходного сообщения с помощью открытого ключа Боба и Боб использует открытый ключ Алисы для расшифровки подписи. Как оба они могут быть уверены, открытого ключа друг друга? То, что цифровые сертификаты для. Ее позволяет доверенная третья сторона для проверки / сказать «открытый ключ Алисы хуг». Ярчайший объяснение для меня доступна в RSA Laboratories:
Алиса посылает Бобу шифрованное сообщение дайджеста и сообщение, которое она может или не может зашифровать. Для того, чтобы Боба удостоверять подписи, он должен применить ту же хэш-функцию, как Алиса в сообщении она послала его, расшифровать зашифрованный дайджест сообщения с помощью открытого ключа Алисы и сравнить два. Если две такие же, что он успешно прошел проверку подлинности подписи. Если два не совпадают, есть несколько возможных объяснений. Либо кто-то пытается выдать себя за Алису, сообщение сама была изменена, так как Алиса подписала его или произошла ошибка во время передачи. Цифровой сертификат : Кроме того, кто — то может претендовать на Алиса и подписывать документы с парой ключей , он утверждает , это Элис. Чтобы избежать таких сценариев, как это, есть цифровые документы , называемые сертификаты , которые связывают человека с определенным открытым ключом. Материал из Википедии (курсив мой):
Так что, если я понимаю правильно выше, цифровая подпись только доказывает, что документ не был изменен в то время как цифровой сертификат удостоверяет, что документ действительно пришел от вас. Концептуально они являются своего рода oposites. С цифровым сертификатом encypt вас с открытым ключом и расшифровать с закрытым ключом, таким образом, вы можете обеспечить только человек с закрытым ключом может читать текст. С помощью цифровой подписи шифрования с закрытым ключом и дешифрование с помощью открытого ключа, таким образом каждый может расшифровать, но только человек с закрытым ключом может зашифровать, так что вы знаете, что пришло сообщение от человека с закрытым ключом. Цифровые подписи генерируются в электронном виде, который используется для обеспечения достоверности & целостности данных для примера сообщения электронной почты. Принимая во внимание, цифровой сертификат является средством, чтобы доказать личность владельца сайта, и это дает защиту от обмена данных от посетителей к отправителю. Можно сказать, что это похоже на другие доказательства подлинности лица, как водительские права или любой сотрудник удостоверения личности. Доверенные третьи стороны выдают цифровые сертификаты, для установления личности лица, которому принадлежит сертификату. Эти третьи лица, которые выдают цифровые сертификаты известны как сертификации (CA). Проще говоря, цифровые сертификаты используются для выполнения проверки достоверности веб-сайта и цифровые подписи используются для проверки достоверности информации. Как правило, три алгоритма используются системы цифровой подписи. Первый — алгоритм генерации ключей используется для генерации открытых и закрытых ключей пары. Во-вторых — подписание алгоритма используется для создания подписи, которая используется во время выдачи секретного ключа и сообщение. В-третьих, и, наконец, алгоритм проверки подписи используется для проверки сообщения, подписи и открытого ключа. Вот общие причины для применения цифровой подписи. 1.Authentication В то время как цифровые сертификаты, использует цифровую подпись для крепления открытого ключа с какой-либо конкретной организацией или лицом. Некоторые из информации, переносимой вместе с цифровыми сертификатами, как, серийный номер, который используется для идентификации каждого сертификата однозначно, физического или юридического лица, указанный в сертификате, и алгоритм, который используется для создания подписи. Помимо этого, он содержит ЦС, который проверяет всю информацию о сертификате, проверка и даты истечения срока действия сертификата. Он также содержит открытый ключ и отпечаток пальца, чтобы гарантировать, что сертификат не был изменен. Цифровые сертификаты в основном используется на сайтах электронной коммерции, которые основаны на HTTPS, чтобы получить доверие посетителей сайта. Цифровой сертификат содержит следующие вещи: Сертификат Имя владельца Основное отличие цифровой подписи и цифровой сертификат Цифровой подписи Он проверяет подлинность документа Цифровой сертификат Это создает идентичность и повышает надежность веб — сайтов. Читайте подробности о цифровой подписи и как они работают , и о цифровых сертификатах здесь .
Ещё в прошлом веке многие предприятия начали массово переходить на электронный документооборот. У всех появились компьютеры с офисными программами. Документы часто набирали в Microsoft Word или других текстовых редакторах, экспортировали в PDF, отправляли по электронной почте. Казалось, что если документооборот электронный, то мы скоро забудем о шкафах с бумажными архивами, на рабочих столах не останется ни единого бумажного листа. Если вдруг в организацию пришлют бумажный документ по обычной почте, то артефакт немедленно отсканируют и переведут в цифровой вид. В реальности вышло совсем наоборот. Оказалось, что чем больше организация использует компьютеры для цифрового документооборота — тем больше документов она печатает. Ведь каждый документ нужно завизировать. Документ без подписи — это просто черновик или информационная записка. Чтобы получить подпись, документы распечатывают, а потом зачастую сканируют обратно, храня оригиналы в архиве. Сейчас понятно, что действительно электронный (безбумажный) документооборот никак не внедрить без цифровых подписей. Сегодня B2B, B2C компании и государственные организации переходят к внедрению цифровых подписей за их неоспоримые преимущества:
Инфраструктура открытых ключей (PKI) обеспечивает целостность и подтверждает авторство каждого документа. Метки времени удостоверяют время подписи документа, что необходимо для транзакций, привязанных к определённому времени, обеспечения невозможности отказа от авторства и сохранения данных для аудита. Разумеется, вся система документооборота с цифровыми подписями должна соответствовать необходимым требованиям, действующим в стране юрисдикции, а также в странах, где работают партнёры и клиенты. Постепенно вырабатываются единые стандарты для электронного документооборота и инфраструктуры цифровых подписей. Например, в странах Евросоюза с 1 июля 2016 года действует стандарт eIDAS (electronic IDentification, Authentication and trust Services) для электронных сервисов идентификации, аутентификации и доверия. В США принят стандарт 21 CFR 11. Самые большие в мире доверенные службы для электронных документов — доверенный список Adobe (AATL) и программа Microsoft Root Trust. Удостоверяющие центры, включённые в этот список, выпускают основанные на сертификатах цифровые идентификаторы и службы отметок времени, которые соответствуют нормативным требованиям в мире, как стандарт eIDAS. Для самых популярных форматов офисных документов уже поддерживаются электронные цифровые подписи. В том числе поддерживается подпись документа несколькими лицами, с метками времени.
Что такое Digital Signing Service (Облачный сервис цифровых подписей)?Digital Signing Service (DSS) — это масштабируемая платформа с поддержкой API для быстрого развёртывания цифровых подписей, которая обеспечивает:
Теоретически, можно организовать «облачный» сервис внутри собственной компании на своих серверах, открыв для пользователей доступ к API. Например, в рамках европейского проекта CEF Digital разработано open-source решение Digital Signature Service (код на GitHub, демо). Для собственного сервиса DSS требуется наладить не только рабочий процесс подписи и управление пользователями. Требуются ещё сертификаты подписи для удостоверения личности автора каждого документа. Это включает в себя криптографические элементы, такие как управление ключами, система хранения ключей уровня безопасности FIPS level 2 или выше (например, аппаратные токены или HSM), служба OCSP или CRL, а также служба меток времени. Объединение этих компонентов, особенно интеграция с аппаратным модулем безопасности (HSM) напрямую, будь то облако или локально, требует значительных усилий со стороны отдела ИТ и отдела информационной безопасности наряду с хорошими знаниями криптографии и наличием необходимых ресурсов. Важно учитывать эти скрытые затраты и инвестиции, а также ограничения и накладные расходы при оценке решений для цифровой подписи. Отдельно стоит упомянуть, что если служба DSS критически важна для организации, то она должна работать с высоким уровнем аптайма и обеспечивать большую пропускную способность. То есть нужно проектировать своё решение с определённой долей избыточности — с запасом на будущее. И следует предполагать, что бизнесу свойственен рост. Инфраструктура должна быть масштабируемой. |
| Digital Signing Service | Традиционная реализация | |
|---|---|---|
| Интеграция с приложениями для подписи документов | Через простой REST API | Требует внутренней криптографической экспертизы для конфигурации и поддержки |
| Компоненты криптографической подписи (сертификаты, OCSP, CRL, метки времени | Включены в API, не требуют продвинутых знаний криптографии или ресурсов разработки | Идут отдельно, требуют отдельных вызовов из приложений и внутренних ресурсов разработки для настройки |
| Масштабируемость | Высокая масштабируемость — не требуется дополнительная настройка или интеграция | Может понадобиться закупка дополнительного оборудования и конфигурация |
| Высокая доступность и аварийное восстановление | Поставляется через инфраструктуру GlobalSign, проверенную WebTrust, с глобальными центрами обработки данных, избыточностью и лучшим оборудованием для защиты сети | Требует дополнительных инвестиций в оборудование |
| Управление секретными ключами и их хранение | Через REST API, внутренние ресурсы или оборудование не используются | Клиент отвечает за управление ключами и их хранение (например, в облаке или локальном HSM) |
| Удостоверения подписи | Поддержка подписей двух уровней: отделов и сотрудников (например, Джон Доу, бухгалтерия) | Не все решения поддерживают оба типа удостоверений |
Облачный сервис сильно упрощает развёртывание системы документооборота с поддержкой цифровых подписей. Все операции просто проходят через API.

Облачные сервисы отличаются по ценам и функциональности. Но все они гарантируют гибкость, масштабируемость и высокий уровень доступности. Хотя сервисы платные, зато избавляют компании от необходимости инвестировать в разработку собственных решений, в том числе закупать дорогостоящее криптографическое оборудование.
Кому может понадобиться облачный сервис цифровых подписей? По идее, это любые организации любого размера, которые разрабатывают или вводят в эксплуатацию специально разработанные приложения и намерены либо интегрировать туда цифровые подписи, либо использовать уже интегрированное приложение.
- Поставщики решений документооборота или приложений, желающие интегрировать цифровые подписи или печати. Другой вариант: предложить их клиентам в качестве премиальной опции как гарантированную защиту документов от подделки. Здесь поддерживается гибкая модель: цифровые подписи можно добавить в качестве дополнительного слоя или опции.
- Предприятия, которые хотят интегрировать цифровые подписи или печати в свой документооборот.
- Системные интеграторы, которые внедряют цифровые подписи в существующие и новые системы документооборота.
В конечном счёте каждая организация сама определяет, какой вариант DSS подходит лучше всего, исходя из имеющихся требований к проекту. Здесь учитываются и требования регулирующих органов, и размер организации, и другие факторы, часто уникальные в каждом конкретном случае.

Криптосистемы с открытым ключом






