Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
agievich committed Jul 20, 2021
0 parents commit 77000b5
Show file tree
Hide file tree
Showing 29 changed files with 4,825 additions and 0 deletions.
22 changes: 22 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# TeX files
*.aux
*.idx
*.log
*.out
*.thm
*.toc
*.dvi

# Graphic files
*.eps
*.cdr

# Tmp files
~*.*
*.bak
*.backup

# Specific files
support
spec/*.pdf
clear.cmd
51 changes: 51 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Bign: digital signature and key transport algorithms based on elliptic curves

![](figs/bign-logo-small.png)

## What is Bign?

Bign is a digital signature system developed in 2010 and standardized a year
later in Belarus. The official standard STB 34.101.45 informally inherits the
name Bign while the core signature system tends to be called `bign-sign`.

## BignV1

The `bign-sign` system follows the
[Schnorr signature scheme](https://en.wikipedia.org/wiki/Schnorr_signature).
By truncating the hash part of the signatures, `bign-sign` makes them quite short:
48, 72, or 96 octets depending on the security level.

Additionally to `bign-sign`, the first edition of STB 34.101.45 defines the
following cryptographic mechanisms:
- `bign-curves` — elliptic curves as a cryptographic platform:
selection strategy, validation, standard curves for 3 security levels;
- `bign-keytransport` — key transport: public key encryption of symmetric keys.

`Bign-curves` are conventional Weierstrass curves over large prime finite fields.
These curves are used outside of Bign to build protocols of the Diffie-Hellman
type.

Bign allows using the same pair of private and public keys both in
`bign-sign` and `bign-keytransport`. Thus, a single public key certificate
can serve both authenticity and confidentiality of the holder.

## BignV2

The second version of STB 34.101.45, released in 2013, additionally defines:
- `bign-genk` — an algorithm for generating ephemeral keys during signature
creation to make `bign-sign` fully deterministic;
- `bign-ibs` — a [Galindo-Garcia](https://link.springer.com/chapter/10.1007/978-3-642-02384-2_9)-like
identity-based signature system;
- `PBKDF2` and `PBES2` — password-based mechanisms to protect Bign private keys.

## What is this repo?

In this repo, we process comments on the current version of Bign,
discuss future versions, provide additional supporting material.

The latest releases of Bign can be found at
[Releases](https://github.com/bcrypto/bign/releases).

Comments and proposals are processed at
[Issues](https://github.com/bcrypto/bign/issues).

Binary file added figs/bign-logo-small.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added figs/bign-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added figs/stb.pdf
Binary file not shown.
86 changes: 86 additions & 0 deletions spec/00Title.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
\thispagestyle{empty}

\noindent
\begin{tabular}{lcr}
{\bf ГОСУДАРСТВЕННЫЙ СТАНДАРТ} & \hspace{3.6cm} & {\bf \draftlogo}\\
{\bf РЕСПУБЛИКИ~БЕЛАРУСЬ} & \\
\end{tabular}

\hrule height 1pt
\vskip0.4mm
\hrule height 2pt

\vskip2cm
\noindent
{\bf\Large Информационные технологии и безопасность}\\[10pt]
{\bf\large АЛГОРИТМЫ ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ}\\
{\bf\large И ТРАНСПОРТА КЛЮЧА НА ОСНОВЕ}\\
{\bf\large ЭЛЛИПТИЧЕСКИХ КРИВЫХ}

\vskip2cm
\noindent
{\bf\Large Iнфармацыйныя тэхналогii i бяспека}\\[10pt]
{\bf\large АЛГАРЫТМЫ ЭЛЕКТРОННАГА ЛIЧБАВАГА ПОДПIСУ}\\
{\bf\large I ТРАНСПАРТА КЛЮЧА НА АСНОВЕ}\\
{\bf\large ЭЛIПТЫЧНЫХ КРЫВЫХ}

\noindent
%{\em Настоящий проект стандарта не подлежит применению до его утверждения}

\vskip9cm
\hrule height 1pt
\vskip0.4mm
\hrule height 2pt
\noindent
\begin{tabular}{p{5cm}cp{4cm}}
\vtop{\null\hbox{{\includegraphics[width=2.6cm]{../figs/stb}}}} & \hspace{6cm} &
\mbox{}\newline\mbox{}\newline\newline Госстандарт\newline Минск\\
\end{tabular}

\pagebreak


\hrule
\vskip2mm

УДК~004.056.55.021(083.74)(476)\hfill
МКС~35.240.01\hfill
КП~05

\vskip0.5mm

{\bf Ключевые слова}: электронная цифровая подпись, транспорт ключа,
криптографические алгоритмы на основе эллиптических кривых

\vskip0.5mm

\hrule

\rule{0pt}{5mm}

\centerline{\bf Предисловие}

Цели, основные принципы, положения по государственному регулированию и
управлению в области технического нормирования и стандартизации
установлены Законом Республики Беларусь <<О техническом нормировании и
стандартизации>>.

\vskip0.2cm

1~РАЗРАБОТАН учреждением Белорусского государственного университета
<<Науч\-но-исследовательский институт прикладных проблем математики и
информатики>>

ВНЕСЕН Оперативно-аналитическим центром при Президенте Республики Беларусь

2~УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ постановлением Госстандарта Республики
Беларусь от 30 августа 2013~г. \No~45

3~ВЗАМЕН СТБ П 34.101.45-2011

\vfill
\hrule
\vskip1mm
Издан на русском языке

\pagebreak
45 changes: 45 additions & 0 deletions spec/01Logo.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
\begin{center}
{\bfseries
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РЕСПУБЛИКИ~БЕЛАРУСЬ
\vskip 2pt
\hrule width\textwidth

\vskip 9pt

Информационные технологии и безопасность

АЛГОРИТМЫ ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ И~ТРАНСПОРТА КЛЮЧА
НА ОСНОВЕ ЭЛЛИПТИЧЕСКИХ КРИВЫХ

\vskip 9pt

Iнфармацыйныя тэхналогii i бяспека

АЛГАРЫТМЫ ЭЛЕКТРОННАГА ЛIЧБАВАГА ПОДПIСУ I~ТРАНСПОРТА КЛЮЧА
НА АСНОВЕ ЭЛIПТЫЧНЫХ КРЫВЫХ
} % bfseries

\vskip 9pt

Information technology and security

Digital signature and key transport
algorithms based on elliptic curves

\vskip 4pt
\hrule width \textwidth
\end{center}

\mbox{}\hfill{\bfseries Дата введения 2014-01-01}

\chapter{Область применения}

Настоящий стандарт устанавливает алгоритмы выработки и проверки
электронной цифровой подписи (далее~--- ЭЦП), алгоритмы транспорта ключа,
а также сопровождающие их алгоритмы генерации и проверки параметров
эллиптической кривой, генерации личных и открытых ключей,
проверки открытых ключей.

Настоящий стандарт применяется при разработке средств криптографической
защиты информации, в том числе средств ЭЦП и шифрования.

50 changes: 50 additions & 0 deletions spec/02Refs.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
\chapter{Нормативные ссылки}

В настоящем cтандарте использованы ссылки на следующие
технические нормативные правовые акты в области
технического нормирования и стандартизации (далее~--- ТНПА):

СТБ~34.101.17-2012 Информационные технологии и безопасность.
Синтаксис запроса на получение сертификата

СТБ~34.101.19-2012 Информационные технологии и безопасность.
Форматы сертификатов и списков отозванных сертификатов
инфраструктуры открытых ключей

СТБ~34.101.23-2012 Информационные технологии и безопасность.
Синтаксис криптографических сообщений

СТБ~34.101.26-2012 Информационные технологии и безопасность.
Онлайновый протокол проверки статуса сертификата (OCSP)

СТБ~34.101.31-2011 Информационные технологии. Защита информации.
Криптографические алгоритмы шифрования и контроля целостности

СТБ~34.101.47-2012 Информационные технологии и безопасность.
Криптографические алгоритмы генерации псевдослучайных чисел

СТБ~1176.2-99 Информационная технология. Защита информации.
Процедуры выработки и проверки электронной цифровой подписи

ГОСТ~34.973-91 (ИСО 8824-87) Информационная технология. Взаимосвязь
открытых систем. Спецификация абстрактно-синтаксической нотации
версии 1 (АСН.1)

ГОСТ 34.974-91 (ИСО 8825-87) Информационная технология. Взаимосвязь
открытых систем. Описание базовых правил кодирования для
абстрактно-синтаксической нотации версии 1 (АСН.1)

\begin{note}
Примечание~---~При пользовании настоящим стандартом
целесообразно проверить действие ТНПА по каталогу,
составленному по состоянию на 1 января текущего
года, и по соответствующим информационным указателям, опубликованным
в текущем году.
%
Если ссылочные ТНПА заменены (изменены), то при
пользовании настоящим стандартом следует руководствоваться
замененными (измененными) ТНПА. Если ссылочные ТНПА отменены без
замены, то положение, в котором дана ссылка на них, применяется в
части, не затрагивающей эту ссылку.
\end{note}

83 changes: 83 additions & 0 deletions spec/03Terms.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
\chapter{Термины и определения}\label{TERMS}

В настоящем стандарте применяют
следующие термины с соответствующими определениями:

{\bf \thedefctr~ключ}:
Параметр, который управляет криптографическими операциями
выработки и проверки электронной цифровой подписи,
зашифрования и расшифрования,
генерации псевдослучайных чисел и др.

{\bf \thedefctr~конфиденциальность}:
Гарантия того, что сообщения доступны для использования
только тем сторонам, которым они предназначены.
%
% ISO 1799: ensuring that information is accessible
% only to those authorized to have access

{\bf \thedefctr~личный ключ:}
Ключ, который связан с конкретной стороной, не является общедоступным
и используется в настоящем стандарте для выработки электронной цифровой
подписи и для разбора токена ключа.

{\bf \thedefctr~октет}:
Двоичное слово длины~$8$.

{\bf \thedefctr~открытый ключ:}
Ключ, который строится по личному ключу,
связан с конкретной стороной, может быть сделан общедоступным
и используется в настоящем стандарте для проверки электронной цифровой
подписи и для создания токена ключа.

{\bf \thedefctr~подлинность}:
Гарантия того, что сторона действительно является
владельцем (создателем, отправителем) определенного сообщения.

{\bf \thedefctr~секретный ключ:}
Ключ, который связан с конкретными сторонами, не является общедоступным
и используется в настоящем стандарте для генерации псевдослучайных
чисел и для защиты других ключей.

{\bf \thedefctr~синхропосылка}:
Открытые входные данные криптографического алгоритма,
которые обеспечивают уникальность результатов
криптографического преобразования на фиксированном ключе.

{\bf \thedefctr~сообщение}:
Двоичное слово конечной длины.

{\bf \thedefctr~токен ключа}:
Сообщение, которое передается от одной стороны другой
при транспорте ключа и представляет
собой транспортируемый ключ в защищенной форме, а также данные,
необходимые получателю для снятия защиты.

{\bf \thedefctr~транспорт ключа}:
Конфиденциальная передача ключа от одной стороны другой.

{\bf \thedefctr~хэш-значение}:
Двоичное слово фиксированной длины,
которое определяется по сообщению без использования ключа и
служит для контроля целостности сообщения и для представления
сообщения в (необратимо) сжатой форме.

{\bf \thedefctr~хэширование}:
Выработка хэш-значений.

{\bf \thedefctr~целостность}:
Гарантия того, что сообщение не изменено
при хранении или передаче.

{\bf \thedefctr~электронная цифровая подпись; ЭЦП}:
Контрольная характеристика сообщения, которая
вырабатывается с использованием личного ключа,
проверяется с использованием открытого ключа,
служит для контроля целостности и подлинности сообщения
и обеспечивает невозможность отказа от авторства.
% Закон об ЭЦП и ЭД:
% электронная цифровая подпись – последовательность символов, являющаяся
% реквизитом электронного документа и предназначенная для подтверждения его
% целостности и подлинности


Loading

0 comments on commit 77000b5

Please sign in to comment.