Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по решению задач.docx
Скачиваний:
50
Добавлен:
13.03.2016
Размер:
52.78 Кб
Скачать

Шифр One – Time – Pad (otp)

Шифр ОТР – это единственный шифр, который является абсолютно надежным, т.е.его взлом невозможен. Одним из примеров является шифр, изобретенный в 1917 году Г.Вернамом и названный его именем.

Метод шифрования здесь очень прост: в качестве открытого текста берется поток битов, а в качестве секретного ключа – случайный набор двоичных чисел такой же длины, как и открытый текст. Криптограмма получается тупеем сложения элементов открытого текста и элементов ключа без учета переноса, т.е. по правилу 1 + 1 = 0, а не 1 + 1 = 10. Если последовательность, являющаяся ключом, действительно случайна, то криптоаналитик не имеет никакой возможности взломать данный шифр.

Основная проблема этого способа шифрования состоит в том, что ключ не имеет постоянной длины, зависит только от длины открытого текста и не может быть использован повторно. Это означает, что каждый сеанс шифрования уникален и не дает никакой информации о любом другом сеансе шифрования, поэтому невозможно применить данные, полученные при взломе одной из криптограмм, для анализа других. Однако для шифрования с помощью алгоритма ОТР получателю сообщения необходимо иметь доступ к тому же ключу, который был использован отправителем.

Пример 9.

Пусть открытый текст преобразован в двоичную последовательность 010101010101010101010101010, а в качестве ключа была случайным образом сгенерирована последовательность 1010101010101010101010101.

Тогда, используя правило сложения двоичных чисел, получим криптограмму 1111111111111111111111111.

Шифрование с автоключом. Алгоритм «Crypto»

Шифр, в котором сам открытый текс или получающаяся криптограмма используется в качестве «ключа», называется шифром с автоключом. Шифрование в этом случае начинается с ключа, называемого первичным, и продолжается с помощью открытого текста или криптограммы, смещенной ни длину первичного ключа.

Пример 10.

Шифрование с автоключом при использовании открытого текста:

Открытый текст

ШИФРОВАНИЕ_ЗАМЕНОЙ

Автоключ

КЛЮЧШИФРОВАНИЕ_ЗАМ

Криптограмма

ВФТЗЖЛХЮЧИАХЙТЕХПЦ

Ш – 23 по порядку, К – 11 по порядку, то 23 + 11 = 34, что соответствует по порядку букве В, если начинаем считать с буквы Ш и т.д.

Пример 11.

Шифрование с автоключом при использовании криптограммы:

Открытый текст

ШИФРОВАНИЕ_ЗАМЕНОЙ

Автоключ

КЛЮЧВФТЗСЧУХЪЭУЭЫЙ

Криптограмма

ВФТЗСЧУЧЪЭУЭЫЙЩКЙУ

Алгоритм «Crypto» использует шифрование с автоключом. Рассмотрим его более подробно.

При шифровании формируется случайный ключ длиной от 20 до 256 символов (длина ключа также определяется случайно), с помощью которого выполняется шифрование исходного текста. Секретный ключ стоится на основе упорядоченных выборок с возвращением m элементов из n возможных, причем m>n.

Алгоритм при повторном шифровании открытого текста использует только блоки полученной криптограммы, что также затрудняет криптоанализ. Кроме того, алгоритм позволяет изменить вероятность появления символов в тексте сообщения, что повышает устойчивость алгоритма к атаке, основанной на вероятностном шифровании.

Ключом при шифровании является случайная последовательность символов алфавита. При попытке угадывания ключа для дешифрования ошибка всего в одном символе ключа ведет к неправильной расшифровке всей криптограммы.

Для шифрования текста используется следующая таблица символов:

1

1

21

)

41

В

61

Ц

81

и

101

ъ

121

Q

141

k

2

2

22

-

42

Г

62

Ч

82

к

102

ь

122

R

142

l

3

3

23

_

43

Д

63

Ш

83

л

103

ы

123

S

143

m

4

4

24

+

44

Е

64

Щ

84

м

104

й

124

T

144

n

5

5

25

=

45

Ё

65

Э

85

н

105

A

125

U

145

o

6

6

26

\

46

Ж

66

Ю

86

о

106

B

126

V

146

p

7

7

27

/

47

З

67

Я

87

п

107

C

127

W

147

q

8

8

28

|

48

И

68

Ъ

88

р

108

D

128

X

148

r

9

9

29

,

49

К

69

Ь

89

с

109

E

129

Y

149

s

10

0

30

.

50

Л

70

Й

90

т

110

F

130

Z

150

t

11

31

~

51

М

71

Ы

91

у

111

G

131

a

151

u

12

!

32

@

52

Н

72

а

92

ф

112

H

132

b

152

v

13

«

33

#

53

О

73

б

93

х

113

I

133

c

153

w

14

34

$

54

П

74

в

94

ц

114

J

134

d

154

x

15

;

35

^

55

Р

75

г

95

ч

115

K

135

e

155

y

16

%

36

&

56

С

76

д

96

ш

116

L

136

f

156

z

17

:

37

.

57

Т

77

е

97

щ

117

M

137

g

157

[

18

?

38

<

58

У

78

ё

98

э

118

N

138

h

158

]

19

*

39

А

59

Ф

79

ж

99

ю

119

O

139

i

159

{

20

(

40

Б

60

Х

80

з

100

я

120

P

140

j

160

}

Каждый символ в данном алфавите имеет свой порядковый номер. При работе с текстом сообщения под номером символа сообщения мы будем понимать номер данного символа в данном алфавите.

Шифрование производится по следующей схеме:

  1. Определяется символы, которые используются в тексте сообщения менее чем n раз.

  2. К исходному тексту дописываются эти символы: символ исходного текста – дописанный символ, символ исходного текста – дописанный символ, и т.д.

  3. Полученный текст разбивается на блоки длиной, равной выбранной длине ключа.

  4. Каждый блок шифруется с помощью секретного ключа: каждый символ текста сообщения сдвигается «по кругу» на n символов, где n определяется как номер очередного символа секретного ключа.

  5. На следующем шаге формируется новый секретный ключ по следующему правилу: пусть А – элемент ключа, тогда Аi = А1 + …+ Аi. С помощью полученного ключа проводится второй раунд шифрования.

  6. Третий раунд шифрования проводится с помощью третьего ключа, сформированного следующим образом: Аi = Ai + Ai+1 + … + An.

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

  8. Текст зашифрованного сообщения последовательно составляется из всех блоков.

При дешифровке полученного текста используется следующий алгоритм:

  1. Текст зашифрованного сообщения делится на блоки, по длине равные длине используемого секретного ключа.

  2. Над каждой парой блоков выполняется следующая операция: каждый левый блок расшифровывается с помощью текста правого блока в качестве секретного ключа. Дешифровка производится по следующему правилу: сдвиг по кругу против часовой стрелки на n, где n – номер символа ключа.

  3. Полученный текст расшифровывается по тому же правилу с помощью трех секретных ключей.

  4. Из полученного текста выписываются только нечетные символы.

  5. Полученная последовательность представляет собой исходный открытый текст.