SlideShare a Scribd company logo
1 of 19
Генераторы псевдослучайных
последовательностей
 Генератор псевдослучайных последовательностей - алгоритм
порождающий последовательность чисел, элементы которой почти
независимы друг от друга и подчиняются заданному распределению.
Случайная последовательность Псевдослучайная последовательность
основных требования
 Период гаммы должен быть достаточно
большим для шифрования сообщений
различной длины.
 Гамма должна быть трудно предсказуемой.
 Генерирование гаммы не должно быть
связано с большими техническими и
организационными трудностями.
Методы получение псевдослучайных чисел
Линейный конгруэнтный метод
Метод Фибоначчи с запаздываниями
Линейный регистр сдвига с обратной
связью
Вихрь Мерсенна
Применение
генераторы псевдослучайных чисел (ГПСЧ) использоваться в
качестве генераторов ключей в поточных шифрах.
Поточный шифр – это шифр, который выполняет шифрование
входного сообщения по одному биту (или байту) за операцию.
Линейный конгруэнтный генератор
Конгруэнтность - согласованность и соразмерность элементов,
образующих некоторое целое.
Линейными конгруэнтными генераторами являются генераторы
следующей формы: Xn=(a*Xn-1 + b) mod c
Xn - это n-ый член последовательности
a,b,m-постоянные
a- множитель
b- инкремент(прибавление к следующему элементу)
c- модуль(остаток от деления )
Приложения
«Линейный конгруэнтный
генератор»
генерация
числагенерация
заданного
количество
чисел запись предыдущий член
последовательности
первый
элемент
длинна
последовательности
Гаммирование
Гамми́рование — метод симметричное шифрования,
заключающийся в «наложении» последовательности, состоящей
из случайных чисел, на открытый текст.
Принцип шифрования
В этом способе шифрование выполняется путем сложения
символов исходного текста и ключа по модулю, равному числу букв в
алфавите.
z = x + k (mod N)
z – закодированный символ
N - количество символов в алфавите
k - символу ключа
x - исходному символу
А Б В Г Д Е Ё Ж З И Й
0 1 2 3 4 5 6 7 8 9 10
К Л М Н О П Р С Т У Ф
11 12 13 14 15 16 17 18 19 20 21
Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
22 23 24 25 26 27 28 29 30 31 32
Пример
исходному символу – «Б» (1)
символу ключа - «В» (2)
количество символов в алфавите – 33
Шифрование:
z = x + k (mod N)=1 + 2 (mod 33)
z=3
закодированный символ – «Г»
Дешифрование:
X=(z – k + N ) mod N=(3 – 2 + 33 ) mod 33
X=1 («Б»)
А Б В Г Д Е Ё Ж З И Й
0 1 2 3 4 5 6 7 8 9 10
К Л М Н О П Р С Т У Ф
11 12 13 14 15 16 17 18 19 20 21
Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
22 23 24 25 26 27 28 29 30 31 32
Двоичное гаммирование
Используется двоичный алфавит, а сложение производится
по модулю два. Операция сложения по модулю 2 часто
обозначается .
Формула : z = x + k (mod 2) = x k
Пример двоичного обозначения :
«А» = 0000 «В» = 00010
«Б» = 0001 «Г» = 00011
Принцип шифрования
Предположим, нам необходимо зашифровать десятичное число 14 методом
гаммирования с использованием ключа 12.
14(10)=1110(2)
12(10)=1100(2)
Исходное число - 1 1 1 0
Гамма - 1 1 0 0
0 0 = 0
1 0 = 1
1 1 = 0
1 1 = 0
Результат - 0 0 1 0
0010(2) =2(10)
В результате сложения получили двоичное число 0010. Если
перевести его в десятичную форму, получим 2.
правила сложения
Приложения
«Шифрование методом гаммирования»
на языке C#
Методы
Для разработки программы потребуется два метода
Encryption и Decryption .
текст для
шифрования ключ
текст для
дешифрования
Глобальные переменные(поля)
Создадим поля для хранения информации .
алфавит
зашифрованный или
расшифрованный текст
Номер
закодированный
символа (в alf)
Номер символу
ключа (в alf)
Номер исходного
символа (в alf)
Метод Encryption(шифрование)
Метод Encryption – возвращает шифруемый текст используя ключ (ключ и
текст передаются при вызове метода).
Метод состоит из двух циклов for.
Тело метода:
Первый цикл
Номер символа в ключе
Номер символа в открытом
тексте
Номер символа
ключа в алфавите
Номер символа
в открытом тексте
в алфавите
проверка на перебор всех символов ключа
второй цикл
запись
зашифрованного
символа
Второй цикл
Позиция в алфавите
Проверка на
совпадения символа
алфавита и символа
открытого текста
Проверка на
совпадения символа
алфавита и символа
ключа
Проверка на
нахождения
символов
Вычисления номера
зашифрованного
символа
Метод
Decryption(расшифровка)
Метод Decryption – метод для расшифровки текста .
Алгоритм метода такой же как и алгоритм метода Encryption.
Изменена только формулы нахождения номера зашифрованного
символа .
меняется на

More Related Content

What's hot

Ch12 Cryptographic Protocols and Public Key Infrastructure
Ch12 Cryptographic Protocols and Public Key InfrastructureCh12 Cryptographic Protocols and Public Key Infrastructure
Ch12 Cryptographic Protocols and Public Key InfrastructureInformation Technology
 
Personality With Theories {Lecture Notes}
Personality With Theories {Lecture Notes}Personality With Theories {Lecture Notes}
Personality With Theories {Lecture Notes}FellowBuddy.com
 
Message Authentication
Message AuthenticationMessage Authentication
Message Authenticationchauhankapil
 
100+ Cyber Security Interview Questions and Answers in 2022
100+ Cyber Security Interview Questions and Answers in 2022100+ Cyber Security Interview Questions and Answers in 2022
100+ Cyber Security Interview Questions and Answers in 2022Temok IT Services
 
Rishabhcyber security.pptx
Rishabhcyber security.pptxRishabhcyber security.pptx
Rishabhcyber security.pptxRishabhDwivedi70
 
Using PGP for securing the e-mail
Using PGP for securing the e-mailUsing PGP for securing the e-mail
Using PGP for securing the e-maildavidepiccardi
 
Pgp pretty good privacy
Pgp pretty good privacyPgp pretty good privacy
Pgp pretty good privacyPawan Arya
 
Cryptography full report
Cryptography full reportCryptography full report
Cryptography full reportharpoo123143
 
Secret key cryptography
Secret key cryptographySecret key cryptography
Secret key cryptographyPrabhat Goel
 
Graphical Password authentication using Hmac
Graphical Password authentication using HmacGraphical Password authentication using Hmac
Graphical Password authentication using HmacArpana shree
 
Information and data security block cipher and the data encryption standard (...
Information and data security block cipher and the data encryption standard (...Information and data security block cipher and the data encryption standard (...
Information and data security block cipher and the data encryption standard (...Mazin Alwaaly
 
Message authentication
Message authenticationMessage authentication
Message authenticationCAS
 
Encryption.ppt
Encryption.pptEncryption.ppt
Encryption.pptreshmy12
 
Information Security & Cryptography
Information Security & CryptographyInformation Security & Cryptography
Information Security & CryptographyArun ACE
 
Dell Quest TPAM Privileged Access Control
Dell Quest TPAM Privileged Access ControlDell Quest TPAM Privileged Access Control
Dell Quest TPAM Privileged Access ControlAidy Tificate
 

What's hot (20)

Ch12 Cryptographic Protocols and Public Key Infrastructure
Ch12 Cryptographic Protocols and Public Key InfrastructureCh12 Cryptographic Protocols and Public Key Infrastructure
Ch12 Cryptographic Protocols and Public Key Infrastructure
 
Personality With Theories {Lecture Notes}
Personality With Theories {Lecture Notes}Personality With Theories {Lecture Notes}
Personality With Theories {Lecture Notes}
 
Message Authentication
Message AuthenticationMessage Authentication
Message Authentication
 
Rsa cryptosystem
Rsa cryptosystemRsa cryptosystem
Rsa cryptosystem
 
100+ Cyber Security Interview Questions and Answers in 2022
100+ Cyber Security Interview Questions and Answers in 2022100+ Cyber Security Interview Questions and Answers in 2022
100+ Cyber Security Interview Questions and Answers in 2022
 
Rishabhcyber security.pptx
Rishabhcyber security.pptxRishabhcyber security.pptx
Rishabhcyber security.pptx
 
Rsa algorithm
Rsa algorithmRsa algorithm
Rsa algorithm
 
Using PGP for securing the e-mail
Using PGP for securing the e-mailUsing PGP for securing the e-mail
Using PGP for securing the e-mail
 
Pgp pretty good privacy
Pgp pretty good privacyPgp pretty good privacy
Pgp pretty good privacy
 
LTCM
LTCMLTCM
LTCM
 
Personality
PersonalityPersonality
Personality
 
Cryptography full report
Cryptography full reportCryptography full report
Cryptography full report
 
Secret key cryptography
Secret key cryptographySecret key cryptography
Secret key cryptography
 
Graphical Password authentication using Hmac
Graphical Password authentication using HmacGraphical Password authentication using Hmac
Graphical Password authentication using Hmac
 
Information and data security block cipher and the data encryption standard (...
Information and data security block cipher and the data encryption standard (...Information and data security block cipher and the data encryption standard (...
Information and data security block cipher and the data encryption standard (...
 
Message authentication
Message authenticationMessage authentication
Message authentication
 
Encryption.ppt
Encryption.pptEncryption.ppt
Encryption.ppt
 
Information Security & Cryptography
Information Security & CryptographyInformation Security & Cryptography
Information Security & Cryptography
 
Dell Quest TPAM Privileged Access Control
Dell Quest TPAM Privileged Access ControlDell Quest TPAM Privileged Access Control
Dell Quest TPAM Privileged Access Control
 
DES
DESDES
DES
 

Similar to генераторы псевдослучайных последовательностей и шифрование методом гаммирования

Советский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисленияСоветский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисленияPositive Hack Days
 
Помехоустойчивое кодирование - Циклические коды
Помехоустойчивое кодирование - Циклические кодыПомехоустойчивое кодирование - Циклические коды
Помехоустойчивое кодирование - Циклические кодыnauryzbaevr
 
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...RF-Lab
 
курсовой проект
курсовой проекткурсовой проект
курсовой проектGulnaz Shakirova
 
лабораторная работа 3
лабораторная работа 3лабораторная работа 3
лабораторная работа 3Gulnaz Shakirova
 
Представление информации в компьютере
Представление информации в компьютереПредставление информации в компьютере
Представление информации в компьютереAndrey Dolinin
 
ОПК № 3 – Машинное представление целых чисел, символов, строк
ОПК № 3 – Машинное представление целых чисел, символов, строкОПК № 3 – Машинное представление целых чисел, символов, строк
ОПК № 3 – Машинное представление целых чисел, символов, строкVladimir Parfinenko
 
Kod chisl
Kod chislKod chisl
Kod chisltexnic
 
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...ITMO University
 
Защита информации семинар №3 МФТИ
Защита информации семинар №3 МФТИЗащита информации семинар №3 МФТИ
Защита информации семинар №3 МФТИAlexander Kolybelnikov
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистовGetDev.NET
 
C:\fakepath\кмсзи экз
C:\fakepath\кмсзи   экзC:\fakepath\кмсзи   экз
C:\fakepath\кмсзи экзdarina andr
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс2berkas
 

Similar to генераторы псевдослучайных последовательностей и шифрование методом гаммирования (20)

Советский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисленияСоветский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисления
 
лекция 14
лекция 14лекция 14
лекция 14
 
лекция 14
лекция 14лекция 14
лекция 14
 
Помехоустойчивое кодирование - Циклические коды
Помехоустойчивое кодирование - Циклические кодыПомехоустойчивое кодирование - Циклические коды
Помехоустойчивое кодирование - Циклические коды
 
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
 
курсовой проект
курсовой проекткурсовой проект
курсовой проект
 
лабораторная работа 3
лабораторная работа 3лабораторная работа 3
лабораторная работа 3
 
лекция 17
лекция 17лекция 17
лекция 17
 
лекция 17
лекция 17лекция 17
лекция 17
 
Представление информации в компьютере
Представление информации в компьютереПредставление информации в компьютере
Представление информации в компьютере
 
ОПК № 3 – Машинное представление целых чисел, символов, строк
ОПК № 3 – Машинное представление целых чисел, символов, строкОПК № 3 – Машинное представление целых чисел, символов, строк
ОПК № 3 – Машинное представление целых чисел, символов, строк
 
Kod chisl
Kod chislKod chisl
Kod chisl
 
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...
 
Защита информации семинар №3 МФТИ
Защита информации семинар №3 МФТИЗащита информации семинар №3 МФТИ
Защита информации семинар №3 МФТИ
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистов
 
C:\fakepath\кмсзи экз
C:\fakepath\кмсзи   экзC:\fakepath\кмсзи   экз
C:\fakepath\кмсзи экз
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс
 
Bpsk
BpskBpsk
Bpsk
 
лекция 13
лекция 13лекция 13
лекция 13
 

More from hmyrhik nikita

обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...hmyrhik nikita
 
система эль гамаля
система эль гамалясистема эль гамаля
система эль гамаляhmyrhik nikita
 
обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...hmyrhik nikita
 
криптография. способы защиты информации.
криптография. способы защиты  информации.криптография. способы защиты  информации.
криптография. способы защиты информации.hmyrhik nikita
 
криптографический стандарт Rsa
криптографический стандарт Rsaкриптографический стандарт Rsa
криптографический стандарт Rsahmyrhik nikita
 
криптовалюта
криптовалютакриптовалюта
криптовалютаhmyrhik nikita
 
асимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияасимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияhmyrhik nikita
 
асимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияасимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияhmyrhik nikita
 

More from hmyrhik nikita (11)

обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...
 
система эль гамаля
система эль гамалясистема эль гамаля
система эль гамаля
 
обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...обеспечение безопасности программного продукта на различных стадиях жизненног...
обеспечение безопасности программного продукта на различных стадиях жизненног...
 
криптография. способы защиты информации.
криптография. способы защиты  информации.криптография. способы защиты  информации.
криптография. способы защиты информации.
 
криптографический стандарт Rsa
криптографический стандарт Rsaкриптографический стандарт Rsa
криптографический стандарт Rsa
 
криптовалюта
криптовалютакриптовалюта
криптовалюта
 
асимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияасимметричные алгоритмы шифрования
асимметричные алгоритмы шифрования
 
Prez3
Prez3Prez3
Prez3
 
Prez2
Prez2Prez2
Prez2
 
Prez1
Prez1Prez1
Prez1
 
асимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияасимметричные алгоритмы шифрования
асимметричные алгоритмы шифрования
 

генераторы псевдослучайных последовательностей и шифрование методом гаммирования

  • 1.
  • 2. Генераторы псевдослучайных последовательностей  Генератор псевдослучайных последовательностей - алгоритм порождающий последовательность чисел, элементы которой почти независимы друг от друга и подчиняются заданному распределению. Случайная последовательность Псевдослучайная последовательность
  • 3. основных требования  Период гаммы должен быть достаточно большим для шифрования сообщений различной длины.  Гамма должна быть трудно предсказуемой.  Генерирование гаммы не должно быть связано с большими техническими и организационными трудностями.
  • 4. Методы получение псевдослучайных чисел Линейный конгруэнтный метод Метод Фибоначчи с запаздываниями Линейный регистр сдвига с обратной связью Вихрь Мерсенна
  • 5. Применение генераторы псевдослучайных чисел (ГПСЧ) использоваться в качестве генераторов ключей в поточных шифрах. Поточный шифр – это шифр, который выполняет шифрование входного сообщения по одному биту (или байту) за операцию.
  • 6. Линейный конгруэнтный генератор Конгруэнтность - согласованность и соразмерность элементов, образующих некоторое целое. Линейными конгруэнтными генераторами являются генераторы следующей формы: Xn=(a*Xn-1 + b) mod c Xn - это n-ый член последовательности a,b,m-постоянные a- множитель b- инкремент(прибавление к следующему элементу) c- модуль(остаток от деления )
  • 7. Приложения «Линейный конгруэнтный генератор» генерация числагенерация заданного количество чисел запись предыдущий член последовательности первый элемент длинна последовательности
  • 8. Гаммирование Гамми́рование — метод симметричное шифрования, заключающийся в «наложении» последовательности, состоящей из случайных чисел, на открытый текст.
  • 9. Принцип шифрования В этом способе шифрование выполняется путем сложения символов исходного текста и ключа по модулю, равному числу букв в алфавите. z = x + k (mod N) z – закодированный символ N - количество символов в алфавите k - символу ключа x - исходному символу А Б В Г Д Е Ё Ж З И Й 0 1 2 3 4 5 6 7 8 9 10 К Л М Н О П Р С Т У Ф 11 12 13 14 15 16 17 18 19 20 21 Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я 22 23 24 25 26 27 28 29 30 31 32
  • 10. Пример исходному символу – «Б» (1) символу ключа - «В» (2) количество символов в алфавите – 33 Шифрование: z = x + k (mod N)=1 + 2 (mod 33) z=3 закодированный символ – «Г» Дешифрование: X=(z – k + N ) mod N=(3 – 2 + 33 ) mod 33 X=1 («Б») А Б В Г Д Е Ё Ж З И Й 0 1 2 3 4 5 6 7 8 9 10 К Л М Н О П Р С Т У Ф 11 12 13 14 15 16 17 18 19 20 21 Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я 22 23 24 25 26 27 28 29 30 31 32
  • 11. Двоичное гаммирование Используется двоичный алфавит, а сложение производится по модулю два. Операция сложения по модулю 2 часто обозначается . Формула : z = x + k (mod 2) = x k Пример двоичного обозначения : «А» = 0000 «В» = 00010 «Б» = 0001 «Г» = 00011
  • 12. Принцип шифрования Предположим, нам необходимо зашифровать десятичное число 14 методом гаммирования с использованием ключа 12. 14(10)=1110(2) 12(10)=1100(2) Исходное число - 1 1 1 0 Гамма - 1 1 0 0 0 0 = 0 1 0 = 1 1 1 = 0 1 1 = 0 Результат - 0 0 1 0 0010(2) =2(10) В результате сложения получили двоичное число 0010. Если перевести его в десятичную форму, получим 2. правила сложения
  • 14. Методы Для разработки программы потребуется два метода Encryption и Decryption . текст для шифрования ключ текст для дешифрования
  • 15. Глобальные переменные(поля) Создадим поля для хранения информации . алфавит зашифрованный или расшифрованный текст Номер закодированный символа (в alf) Номер символу ключа (в alf) Номер исходного символа (в alf)
  • 16. Метод Encryption(шифрование) Метод Encryption – возвращает шифруемый текст используя ключ (ключ и текст передаются при вызове метода). Метод состоит из двух циклов for. Тело метода:
  • 17. Первый цикл Номер символа в ключе Номер символа в открытом тексте Номер символа ключа в алфавите Номер символа в открытом тексте в алфавите проверка на перебор всех символов ключа второй цикл запись зашифрованного символа
  • 18. Второй цикл Позиция в алфавите Проверка на совпадения символа алфавита и символа открытого текста Проверка на совпадения символа алфавита и символа ключа Проверка на нахождения символов Вычисления номера зашифрованного символа
  • 19. Метод Decryption(расшифровка) Метод Decryption – метод для расшифровки текста . Алгоритм метода такой же как и алгоритм метода Encryption. Изменена только формулы нахождения номера зашифрованного символа . меняется на

Editor's Notes

  1. Псевдослучайная последовательность (ПСП) — последовательность чисел, которая была вычислена по некоторому определённому арифметическому правилу, но имеет все свойства случайной последовательности чисел . Хотя псевдослучайная последовательность в этом смысле часто, как может показаться, лишена закономерностей, однако любой псевдослучайный генератор с конечным числом внутренних состояний повторится после очень длинной последовательности чисел. Физическое моделирование случайности с помощью таких физических явлений как, например, радиоактивное излучение или дробовой шум в электронной лампе является довольно сложным и дорогостоящим, а использование нажатия клавиш и движение мыши требует усилий пользователя и к тому же не дают полностью настоящих случайных процессов. Поэтому вместо физического моделирования используют методы математического моделирования случайности и генерации случайных последовательностей в виде программ для ЭВМ или специализированных устройств. Эти программы и устройства хотя и называются генераторами случайных чисел, на самом деле генерируют детерминированные последовательности, которые только кажутся случайными по своим свойствам и поэтому называются псевдослучайными последовательностями. От них требуется, чтобы, даже зная закон формирования, но, не зная ключа в виде заданных начальных условий, никто не смог бы отличить генерируемую последовательность от случайной, как будто она получена путем бросания идеальных игровых костей.
  2. 1. Период гаммы должен быть достаточно большим для шифрования сообщений различной длины. 2. Гамма должна быть трудно предсказуемой. Это значит, что если известны тип генератора и кусок гаммы, то невозможно предсказать следующий за этим куском бит гаммы или предшествующий этому куску бит гаммы. 3. Генерирование гаммы не должно быть связано с большими техническими и организационными трудностями. Самая важная характеристика генератора псевдослучайных чисел — это информационная длина его периода, после которого числа будут либо просто повторяться, либо их можно будет предсказать. Эта длина практически определяет возможное число ключей криптосистемы. Чем эта длина больше, тем сложнее подобрать ключ. Второе из указанных выше требований связано со следующей проблемой: на основании чего можно сделать заключение, что гамма конкретного генератора действительно является непредсказуемой? Пока в мире нет универсальных и практически проверяемых критериев для проверки этого свойства. Интуитивно случайность воспринимается как непредсказуемость. Чтобы гамма считалась случайной и непредсказуемой как минимум необходимо, чтобы ее период был очень большим, а различные комбинации бит определенной длины равномерно распределялись по всей ее длине. Это требование статистически можно толковать и как сложность закона генерации псевдослучайной последовательности чисел. Если по достаточно длинному отрезку этой последовательности нельзя ни статистически, ни аналитически определить этот закон генерации, то в принципе этим можно удовлетвориться. И, наконец, третье требование должно гарантировать возможность практической реализации генераторов псевдослучайных последовательностей с учетом требуемого быстродействия и удобства практичного использования. Рассмотрим теперь некоторые практические методы получения псевдослучайных чисел.
  3. 1.Линейный конгруэнтный метод — один из алгоритмов генерации псевдослучайных чисел. Применяется в простых случаях и не обладает криптографической стойкостью. Входит в стандартные библиотеки различных компиляторов. 2. Метод Фибоначчи с запаздываниями — один из методов генерации псевдослучайных чисел. Он позволяет получить более высокое "качество" псевдослучайных чисел. Наибольшую популярность фибоначчиевы датчики получили в связи с тем, что скорость выполнения арифметических операций с вещественными числами сравнялась со скоростью целочисленной арифметики, а фибоначчиевы датчики естественно реализуются в вещественной арифметике. Интересный класс генераторов псевдослучайных последовательностей основан на использовании последовательностей Фибоначчи. Классический пример такой последовательности {0,1,1,2,3,5,8,13,21,34 …} — за исключением первых двух ее членов, каждый последующий член равен сумме двух предыдущих. Особенности распределения случайных чисел, генерируемых линейным конгруэнтным алгоритмом, делают невозможным их использование в статистических алгоритмах, требующих высокого разрешения. 3. Сдвиговый регистр с обратной связью (LFSR — Linear feedback shift register состоит из двух частей: сдвигового регистра и функции обратной связи. Сдвиговый регистр — последовательность битов. Длина сдвигового регистра — количество битов. Когда нужно извлечь бит, все биты сдвигового регистра сдвигаются вправо на одну позицию. Новый крайний слева бит определяется функцией остальных битов регистра. На выходе сдвигового регистра оказывается один, обычно младший, значащий бит. 4. Вихрь Мерсенна (Mersenne twister) — это генератор псевдослучайных чисел, основываный на свойствах простых чисел Мерсенна и обеспечивает быструю генерацию высококачественных псевдослучайных чисел. Вихрь Мерсенна лишен многих недостатков присущих другим ГПСЧ таких как малый период, предсказуемость, легко выявляемая статистическая зависимость. Тем не менее этот генератор не является криптостойким, что ограничивает его использование в криптографии.
  4. Поточный шифр – это шифр, который выполняет шифрование входного сообщения по одному биту (или байту) за операцию. Поточный алгоритм шифрования устраняет необходимость разбивать сообщение на целое число блоков. Таким образом, если передается поток символов, каждый символ может шифроваться и передаваться сразу. Поточные шифры используются для шифрования данных в режиме реального времени. В качестве генераторов ключей в поточных шифрах могут использоваться генераторы псевдослучайных чисел (ГПСЧ). Целью использования ГПСЧ является получение "бесконечного" ключевого слова, располагая относительно малой длиной самого ключа. Для использования в криптографических целях генератор псевдослучайных чисел должен обладать некоторыми свойствами, например, период последовательности, порождаемой генератором, должен быть очень большой.
  5. Период такого генератора не больше, чем m. Если a, b и m подобраны правильно, то генератор будет генератором с максимальным периодом, и его период будет равен m. (Например, для линейного конгруэнтного генератора b должно быть взаимно простым с m). Преимуществом линейных конгруэнтных генераторов является их быстрота за счет малого количества операций на байт и простота реализации. К сожалению, такие генераторы в криптографии используются достаточно редко, поскольку являются предсказуемыми.
  6. Перед шифрованием открытые данные обычно разбивают на блоки одинаковой длины, например, по 64 бита. Гамма шифра также вырабатывается в виде последовательности блоков той же длины. Стойкость шифрования методом гаммирования определяется главным образом свойствами гаммы – длиной периода и равномерностью статистических характеристик. Последнее свойство обеспечивает отсутствие закономерностей в появлении различных символов в пределах периода. Полученный зашифрованный текст является достаточно трудным для раскрытия. По сути дела гамма шифра должна изменяться случайным образом для каждого шифруемого блока. Обычно разделяют две разновидности гаммирования – с конечной и бесконечной гаммами. При хороших статистических свойствах гаммы стойкость шифрования определяется только длиной периода гаммы. При этом, если длина периода гаммы превышает длину шифруемого текста, то такой шифр теоретически является абсолютно стойким, т.е. его нельзя вскрыть при помощи статистической обработки зашифрованного текста, а можно раскрыть только прямым перебором. Криптостойкость в этом случае определяется размером ключа.
  7. Принцип шифрования заключается в формировании генератором псевдослучайных чисел (ГПСЧ) гаммы шифра и наложении этой гаммы на открытые данные обратимым образом, например, путем сложения по модулю два. Процесс дешифрования данных сводится к повторной генерации гаммы шифра и наложении гаммы на зашифрованные данные. Ключом шифрования в данном случае является начальное состояние генератора псевдослучайных чисел. При одном и том же начальном состоянии ГПСЧ будет формировать одни и те же псевдослучайные последовательности.
  8. Наиболее часто на практике встречается двоичное гаммирование. При этом используется двоичный алфавит, а сложение производится по модулю два. Операция сложения по модулю два в алгебре логики называется также "исключающее ИЛИ" или по-английски XOR.
  9. Рассмотрим пример. Предположим, нам необходимо зашифровать десятичное число 14 методом гаммирования с использованием ключа 12. Для этого вначале необходимо преобразовать исходное число и ключ (гамму) в двоичную форму: 14(10)=1110(2), 12(10)=1100(2). Затем надо записать полученные двоичные числа друг под другом и каждую пару символов сложить по модулю два. При сложении двух двоичных знаков получается 0, если исходные двоичные цифры одинаковы, и 1 В результате сложения получили двоичное число 0010. Если перевести его в десятичную форму, получим 2. Таким образом, в результате применения к числу 14 операции гаммирования с ключом 12 получаем в результате число 2.