Skip to content

Commit

Permalink
Переписана глава про КСГПСЧ
Browse files Browse the repository at this point in the history
  • Loading branch information
vlsergey committed Mar 15, 2015
1 parent a8e682b commit bdfc836
Show file tree
Hide file tree
Showing 16 changed files with 1,091 additions and 17,752 deletions.
2 changes: 1 addition & 1 deletion Block_cipher_modes.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\section{Режимы работы блочных шифров}\label{chapter-block-chaining}
\section{Режимы работы блочных шифров}\label{section-block-chaining}
\selectlanguage{russian}

Открытый текст $M$, представленный как двоичный файл, перед шифрованием разбивают на части $M_1, M_2, \dots, M_n$, называемые пакетами. Предполагается, что размер в битах каждого пакета существенно превосходит длину блока шифрования, которая равна 64 бит для российского стандарта и 128 -- для американского стандарта AES.
Expand Down
20 changes: 12 additions & 8 deletions Information Security.tex
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,20 @@

\usepackage{algorithm, algorithmic} % 'algorithm' environments
\floatname{algorithm}{Алгоритм}
\usepackage{multirow} % multirow cells in tables

\usepackage{arydshln} % dash lines in tables
\usepackage{subfig, float, wrapfig} % sub figures
\usepackage{caption} % titles for figures
\usepackage{tikz} % векторная графика внутри TeX
\usepackage{makeidx} % index
%\usepackage[xindy]{imakeidx}
\usepackage[totoc=true]{idxlayout} % балансировка индексов на последней странице, индекс в ToC
\usepackage{enumerate}
\usepackage{fancybox} % страница в рамке
%\usepackage{fancyhdr} % глава и секция вверху страницы
%\usepackage{layout}
\usepackage{float} % sub figures
\usepackage[totoc=true]{idxlayout} % балансировка индексов на последней странице, индекс в ToC
\usepackage{lscape} % поддержка поворота страниц на 90 градусов для широких таблиц
\usepackage{makeidx} % index
\usepackage{multirow} % multirow cells in tables
\usepackage{subfig} % sub figures
\usepackage{tikz} % векторная графика внутри TeX
\usepackage{wrapfig} % sub figures

\usepackage[left=1.84cm, right=1.5cm, paperwidth=14cm, top=1.8cm, bottom=2cm, height=19.8cm, paperheight=20cm]{geometry}
\usepackage[parentracker=true,
backend=biber,
Expand Down Expand Up @@ -289,6 +291,8 @@ \section{Некоторые свойства блочных шифров}

\index{шифр!блочный|)}

\input{generators}

\input{stream-ciphers}

\input{hash-functions}
Expand Down
147 changes: 136 additions & 11 deletions bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,27 @@ @article{Selberg:1949
language = {English},
}

@inproceedings{Lehmer:1951:1,
author = {Lehmer, Derrick Henry},
title = {Mathematical methods in large-scale computing units},
booktitle = {Proceedings of a Second Symposium on Large-Scale Digital Calculating Machinery, 1949},
pages = {141--146},
year = {1951},
publisher = {Harvard University Press},
address = {Cambridge, Mass.},
language = {English},
}

@article{Lehmer:1951:2,
author = {Lehmer, Derrick Henry},
title = {Mathematical Methods in Large-scale Computing Units},
journal = {Annals of the Computation Laboratory of Harvard University},
year = {1951},
volume = {26},
pages = {141--146},
language = {English},
}

@article{Shannon:1951,
author = {Shannon, Claude Elwood},
title = {Prediction and entropy of printed English},
Expand Down Expand Up @@ -316,6 +337,18 @@ @article{Rabin:1980
language = {English},
}

@inproceedings{Yao:1982,
author = {Yao, Andrew Chi-Chih},
title = {Theory and Applications of Trapdoor Functions (Extended Abstract)},
booktitle = {Foundations of Computer Science, 1982. SFCS '08. 23rd Annual Symposium on },
pages = {80--91},
publisher = {IEEE Computer Society},
doi = {10.1109/SFCS.1982.45},
year = {1982},
issn = {0272-5428},
language = {English},
}

@inproceedings{ElGamal:1985,
author = {El Gamal, Taher},
title = {A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms},
Expand Down Expand Up @@ -518,6 +551,13 @@ @incollection{Campbell:Wiener:1993
language = {English}
}

@MISC{Entacher:1997,
author = {Entacher, Karl},
title = {A Collection of Selected Pseudorandom Number Generators with Linear Structures},
year = {1997},
language = {English},
}

@misc{html4:1999,
author = {Raggett, D. and Hors, A. L. and Jacobs, I.},
file = {HTML 4.01 Specification.pdf:HTML 4.01 Specification.pdf:PDF},
Expand Down Expand Up @@ -585,6 +625,39 @@ @book{AlZKCh:2001
language = {Russian},
}

@book{Knuth:2001,
author = {Кнут, Дональд Эрвин},
year = {2001},
title = {Искусство программирования, том 2. Получисленные методы, 3-е изд.},
publisher = {Вильямс},
pagetotal = {832},
isbn = {5-8459-0081-6},
language = {English},
}

@techreport{NIST:2001,
author = {Rukhin, Andrew and Soto, Juan and Nechvatal, James and Smid, Miles amd Barker, Elaine and Leigh, Stefan and Levenson, Mark and Vangel, Mark and Banks, David and Heckert, Alan Dray, James and Vo, San},
year = {2001},
month = {may},
day = {15},
institution = {Booz Allen & Hamilton},
journal = {NIST Special Publication 800-22 (with revisions dated May 15, 2001)},
location = {McLean, VA},
title = {A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications},
url = {http://csrc.nist.gov/publications/nistpubs/800-22-rev1a/SP800-22rev1a.pdf},
}

@book{Bucknall:2001,
author = {Bucknall, Julian},
title = {The Tomes of Delphi},
subtitle = {Algorithms and Data Structures},
year = {2001},
publisher = {Wordware Publishing},
pagetotal = {525},
isbn = {978-1-55622-736-3},
language = {English},
}

@article{aks:2002,
author = {Agrawal, Manindra and Kayal, Neeraj and Saxena, Nitin},
title = {PRIMES is in P},
Expand Down Expand Up @@ -619,6 +692,26 @@ @book{Schneier:2002
language = {Russian},
}

@book{Mak:2003,
author = {Mak, Ronald},
title = {Java Number Cruncher},
subtitle = {The Java Programmer's Guide to Numerical Computing},
year = {2003},
publisher = {Prentice Hall Professional},
pagetotal = {480},
isbn = {007-609-201845-2},
language = {English},
}

@misc{MS-VBRAND:2004,
year = {2004},
title = {INFO: How Visual Basic Generates Pseudo-Random Numbers for the RND Function},
subtitle = {Article ID: 231847},
publisher = {Microsoft},
url = {http://support.microsoft.com/ru-ru/kb/231847/en-us},
language = {English},
}

@INPROCEEDINGS{WangYu:2005,
author = {Wang, X. and Yu, H.},
title = {How to break MD5 and other hash functions},
Expand Down Expand Up @@ -665,17 +758,12 @@ @misc{rfc4306
language = {English},
}

@misc{rfc7230,
author = {Fielding, R. and Reschke, J.},
title = {Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing},
series = {Request for Comments},
number = {7230},
howpublished = {RFC 7230 (Proposed Standard)},
publisher = {IETF},
organization = {Internet Engineering Task Force},
year = {2014},
month = {jun},
url = {http://www.ietf.org/rfc/rfc7230.txt},
@book{Knuth:2005,
author = {Knuth, Donald E.},
title = {The Art of Computer Programming, Volume 1, Fascicle 1: MMIX -- A RISC Computer for the New Millennium (Art of Computer Programming)},
year = {2005},
isbn = {978-0-201-85392-6},
publisher = {Addison-Wesley Professional},
language = {English},
}

Expand Down Expand Up @@ -717,6 +805,17 @@ @book{GabPil:2007
language = {Russian},
}

@book{Press:2007,
author = {Press, William H. and Teukolsky, Saul A. and Vetterling, William T. and Flannery, Brian P.},
title = {Numerical Recipes 3rd Edition: The Art of Scientific Computing},
year = {2007},
isbn = {978-0-521-88068-8},
edition = {3},
publisher = {Cambridge University Press},
address = {New York, NY, USA},
language = {English},
}

@misc{MS-NLMP,
year = {2009},
title = {NT LAN Manager (NTLM) Authentication Protocol},
Expand Down Expand Up @@ -758,9 +857,35 @@ @book{Schneier:2011
language = {English},
}

@book{Sirca:Horvat:2012,
author = {Sirca, Simon and Horvat, Martin},
year = {2012},
title = {Computational Methods for Physicists},
subtitle = {Compendium for Students},
publisher = {Springer Science & Business Media},
pagetotal = {735},
isbn = {978-3-64232478-9},
language = {English},
}

@misc{FIPS-PUB-186-4,
author = {Kerry, C. F. and Gallagher, P. D.},
title = {FIPS PUB 186-4 Federal Information Processing Standards Publication. Digital Signature Standard (DSS)},
year = {2013},
url = {http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf},
language = {English},
}

@misc{rfc7230,
author = {Fielding, R. and Reschke, J.},
title = {Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing},
series = {Request for Comments},
number = {7230},
howpublished = {RFC 7230 (Proposed Standard)},
publisher = {IETF},
organization = {Internet Engineering Task Force},
year = {2014},
month = {jun},
url = {http://www.ietf.org/rfc/rfc7230.txt},
language = {English},
}
2 changes: 1 addition & 1 deletion block_ciphers.tex
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ \section{Введение и классификация}\label{section-block-cip

Аргументами каждого раунда являются результаты предыдущего раунда (для самого первого -- часть открытого текста) и \emph{раундовый ключ}\index{ключ!раундовый}. Раундовые ключи получаются из оригинального ключа шифрования с помощью процедуры, получившей название алгоритма \emph{ключевого расписания}\index{ключевое расписание} (также встречаются названия <<расписание ключей>>, <<процедура расширения ключа>> и др.; \langen{key schedule}). Функция ключевого расписания является важной частью блочного шифра. На потенциальной слабости этой функции основаны такие криптографические атаки, как атака на основе связанных ключей\index{атака!на связанных ключах} и атака скольжения\index{атака!скольжения}.

После прохождения всех раундов шифрования блоки $C1$, $C2$,~$\dots$ объединяются в шифротекст $C$ с помощью одного из режимов сцепления блоков (см. раздел~\ref{chapter-block-chaining}). Простейшим примером режима сцепления блоков является режим электронной кодовой книги\index{режим!электронной кодовой книги}, когда блоки $C1$, $C2$,~$\dots$ просто конкатенируются в шифротекст $C$ без дополнительной обработки.
После прохождения всех раундов шифрования блоки $C1$, $C2$,~$\dots$ объединяются в шифротекст $C$ с помощью одного из режимов сцепления блоков (см. раздел~\ref{section-block-chaining}). Простейшим примером режима сцепления блоков является режим электронной кодовой книги\index{режим!электронной кодовой книги}, когда блоки $C1$, $C2$,~$\dots$ просто конкатенируются в шифротекст $C$ без дополнительной обработки.

К числовым характеристикам блочного шифра относят:
\begin{itemize}
Expand Down
2 changes: 1 addition & 1 deletion classification_by_symmetry.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ \subsection{Симметричные и асимметричные крипто

Если для шифрования и расшифрования используется один и тот же ключ $K$, либо если получение ключа расшифрования $K_2$ из ключа шифрования $K_1$ является тривиальной операцией, то такая криптосистема называется \emph{симметричной}\index{криптосистема!симметричная}. В зависимости от объёма обработки данных за одну операцию шифрования симметричные шифры делятся на \emph{блочные}\index{шифр!блочный}, в которых за одну операцию шифрования происходит преобразование одного блока данных (32 бита, 64, 128 или больше), и \emph{потоковые}\index{шифр!потоковый}, в которых работают с каждым символом открытого текста по отдельности (например, с 1 битом или 1 байтом). Примеры блочных шифров рассмотрены в главе~\ref{chapter-block-ciphers}, а потоковых -- в главе~\ref{chapter-stream-ciphers}.

Шифрование блочным шифром подразумевает разделение открытого текста на блоки одинаковой длины. Блоки шифруются последовательно, причём результат шифрования следующего блока может зависеть от предыдущего. Это регулируется \emph{режимом сцепления блоков}. Примеры нескольких таких режимов рассмотрены в разделе~\ref{chapter-block-chaining}.
Шифрование блочным шифром подразумевает разделение открытого текста на блоки одинаковой длины. Блоки шифруются последовательно, причём результат шифрования следующего блока может зависеть от предыдущего. Это регулируется \emph{режимом сцепления блоков}. Примеры нескольких таких режимов рассмотрены в разделе~\ref{section-block-chaining}.

Если ключ расшифрования получить из ключа шифрования сложно (или невозможно), то такие криптосистемы называют криптосистемами \emph{с открытым ключом}\index{криптосистема!с открытым ключом} или \emph{асимметричными} криптосистемами\index{криптосистема!асимметричная}. Некоторые из них рассмотрены в главе~\ref{chapter-public-key}. Все используемые на сегодняшний день асимметричные криптосистемы работают с блоком данных открытого текста, представленным в виде числа длиной в несколько сотен или тысяч бит, поэтому классификация таких систем по объёму обрабатываемых за одну операцию данных не производится.

Expand Down
Loading

0 comments on commit bdfc836

Please sign in to comment.