Методы и средства защиты компьютерной информации

Статистический анализ текстов, созданных программой симметричного шифрования. Реализация симметричного криптоалгоритма. Основные шаги в использовании криптосистемы PGP. Генерация ключей, шифрование и расшифровка сообщений. Защита от сетевых атак.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 06.07.2009
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

2

Кафедра: Автоматика и информационные технологии

МЕТОДЫ И СРЕДСТВА ЗАЩИТЫ КОМПЬЮТЕРНОЙ ИНФОРМАЦИИ

Екатеринбург 2005

Содержание

  • РАБОТА 1. ИССЛЕДОВАНИЕ ХАРАКТЕРИСТИК ТЕКСТОВ
    • РАБОТА 2. РЕАЛИЗАЦИЯ СИММЕТРИЧНОГО КРИПТОАЛГОРИТМА
    • РАБОТА 3. АЛГОРИТМ AES
    • 1. ПОСТАНОВКА ЗАДАЧИ
    • 2. ОПИСАНИЕ АЛГОРИТМА
    • 2.1 ВЫЧИСЛЕНИЕ КЛЮЧА РАУНДА
    • 2.2 S-БЛОК
    • 2.3 ПРЕОБРАЗОВАНИЕ ShiftRow
    • 2.4 ПРЕОБРАЗОВАНИЕ MixColumn
    • 2.5 СЛОЖЕНИЕ С КЛЮЧОМ РАУНДА
    • 2.6 ПОЛНАЯ ПРОЦЕДУРА ЗАШИФРОВАНИЯ БЛОКА
    • 2.7 РАСШИФРОВАНИЕ
    • БИБЛИОГРАФИЧЕСКИЙ СПИСОК
    • РАБОТА 4. КРИПТОСИСТЕМА PGP
    • 1. ХАРАКТЕРИСТИКА PGP
    • 2. КАК PGP РАБОТАЕТ
    • 3. ОСНОВНЫЕ ШАГИ В ИСПОЛЬЗОВАНИИ PGP
    • 4. ИНСТАЛЛЯЦИЯ PGP
    • 5. ГЕНЕРАЦИЯ КЛЮЧЕЙ
    • 6. КАК ПОСЛАТЬ ЗАШИФРОВАННОЕ СООБЩЕНИЕ
    • 7. РАСШИФРОВКА СООБЩЕНИЙ
    • РАБОТА 5. ВИРУСЫ И АНТИВИРУСНЫЕ ПРОГРАММЫ
    • РАБОТА 6. ИССЛЕДОВАНИЕ СИСТЕМЫ БЕЗОПАСНОСТИ ОС
    • РАБОТА 7. ЗАЩИТА ОТ СЕТЕВЫХ АТАК

РАБОТА 1. ИССЛЕДОВАНИЕ ХАРАКТЕРИСТИК ТЕКСТОВ

Выполнить статистический анализ свободных русскоязычного и англоязычного текстов, организованного текста, сжатого файла и соответствующих шифртекстов, созданных одной из программ симметричного шифрования. Произвести сравнительный анализ статистик. Для экспресс-анализа использовать программу statistics. exe, подробный анализ выполнить с помощью методов, приведенных ниже.

Универсальные тесты для анализа случайных последовательностей.

Критерий "хи-квадрат", вероятно, самый распространенный из всех статистических критериев. Он используется не только сам по себе, но и как составная часть многих других тестов. Прежде чем приступить к общему описанию критерия "хи", рассмотрим сначала в качестве примера, как можно было бы применить этот критерий для анализа игры в кости. Пусть каждый раз бросаются независимо две "правильные" кости, причем бросание каждой из них приводит с равной вероятностью к выпадению одного из чисел 1, 2, 3, 4, 5 и 6 вероятности выпадения любой суммы s при одном бросании представлены в таблице:

Например, сумма S=4 может быть получена тремя способами:

1+3, 2+2, 3+1; при 36 возможных исходах это составляет 3/36=1/12=P4

Если бросать кости N раз, можно ожидать, что сумма S появится в среднем nps раз. Например, при 144 бросаниях значение 4 должно появиться около 12~раз. Следующая таблица показывает, какие результаты были в действительности, получены при 144 бросаниях.

Отметим, что фактическое число выпадений отличается от среднего во всех случаях. В этом нет ничего удивительного. Дело в том, что всего имеется 36144 возможных последовательностей исходов для 144 бросаний, и все они равновероятны. Одна из таких последовательностей состоит, например, только из двоек ("змеиные глаза"), и каждый, у кого "змеиные глаза" выпадут подряд 144~раза, будет уверен, что кости поддельные. Между тем эта последовательность так же вероятна, как и любая другая. Каким же образом в таком случае мы можем проверить, правильно ли изготовлена данная пара костей? Ответ заключается в том, что сказать определенно "да" или "нет" мы не можем, но можем дать \EMPH{вероятностный} ответ, т.е. указать, насколько вероятно или невероятно данное событие.

Естественный путь решения нашей задачи состоит в следующем. Вычислим (прибегнув к помощи ЭВМ) сумму квадратов разностей фактического числа выпадений Ys и среднего числа выпадений nps:

Для плохого комплекта костей должны получаться относительно высокие значения V. Возникает вопрос, насколько вероятны такие высокие значения? Если вероятность их появления очень мала, скажем равна 1/100, т.е. отклонение результата от среднего значения на такую большую величину возможно только в одном случае из 100, то у нас есть определенные основания для подозрений. (Не следует забывать, однако, что даже хорошие кости будут давать такое высокое значение V один раз из 100, так что для большей уверенности следовало бы повторить эксперимент и посмотреть, получится ли повторно высокое значение V).

В статистику V все квадраты разностей входят с равным весом, хотя (Y7 - np7) 2, например, вероятно, будет намного больше, чем (Y2 - np2) 2, так как s=7 встречается в шесть раз чаще, чем s=2. Оказывается, что в "правильную" статистику, или по крайней мере такую, для которой доказано, что она наиболее значима, член (Y7 - np7) 2 входит с множителем, который в шесть раз меньше множителя при (Y2 - np2) 2 Таким образом, следует заменить~ (3) на следующую формулу:

Определенную таким образом величину V называют статистикой “хи-квадрат", соответствующей значениям Y2, …, Y12 полученным в эксперименте.

Подставляя в эту формулу значения из (2), получаем

Теперь, естественно, возникает вопрос, является ли значение 7 7/48 настолько большим, что его случайное появление можно считать маловероятным. Прежде чем отвечать на этот вопрос, сформулируем критерий “хи-квадрат" в более общем виде. Предположим, что все возможные результаты испытаний разделены на k категорий. Проводится n независимых испытаний это означает, что исход каждого испытания абсолютно не влияет на исход остальных. Пусть ps вероятность того, что результат испытания попадет в категорию s, и пусть Ys число испытаний, которые действительно попали в категорию s.

Сформируем статистику

В предыдущем примере имелось 11 возможных исходов при каждом бросании костей, так что k=11. [Формулы (4) и (6) различаются только нумерацией: в одном случае она производится от 2 до 12, а в другом от 1 до k.]

Используя тождество

и равенства

можно преобразовать формулу (6) к виду

причем в большинстве случаев такая запись облегчает вычисления.

Большим преимуществом рассматриваемого метода является то, что одни и те же табличные значения используются при любых n и любых вероятностях ps. Единственной переменной является v =k - 1. На самом деле приведенные в таблице значение не являются абсолютно точными во всех случаях: это приближенные значения, справедливые лишь при достаточно больших значениях n Как велико должно быть n? Достаточно большими можно считать такие значения n, при которых любое из nps не меньше 5; однако лучше брать n значительно большими, чтобы повысить надежность критерия. Заметим, что в рассмотренных примерах мы брали n=144, и np равнялось всего 4, что противоречит только что сформулированному правилу. Единственная причина этого нарушения кроется в том, что автору надоело бросать кости; в результате числа из таблицы оказались не очень подходящими для нашего случая. Было бы горазда лучше провести эти эксперименты на машине при n=1000 или 10000

Датчики a, b, d прошли испытания удовлетворительно, датчик c находится на грани и должен быть, по-видимому, забракован, а датчики e и f определенно не прошли испытаний. Датчик~f, безусловно, маломощен; датчики c и d обсуждались в литературе, но у них слишком мало значение a. В датчике d реализован метод вычетов в том виде, в каком он был впервые предложен Лемером в 1948г., а в датчике c-линейный конгруэнтный метод с?0 также в его первоначальном виде (Ротенберг, 1960).

Брюс Шнайер, Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си 816 стр., 2002 г. Издательство: Триумф Дональд Кнут Искусство программирования Том 2.

РАБОТА 2. РЕАЛИЗАЦИЯ СИММЕТРИЧНОГО КРИПТОАЛГОРИТМА

Реализовать симметричный криптоалгоритм на основе простого гамиирования и с использованием сети Фейстеля. Для реализации последнего применить программу diskreet.

Провести статистический анализ открытых текстов и шифртекстов.

Пакет Norton Utilities содержит программу DISKREET, которая позволяет обеспечить защиту и шифровку файлов и создания виртуальных зашифрованных дисков. Для шифровки и защиты программы (файла) от несанкционированного доступа необходимо запустить программу DISKREET, указать в меню пункт Файл, указать путь шифруемого программного файла (с расширением com или exe), задать новое имя шифруемого файла, несколько отличающееся от старого, ввести пароль (не менее 6 символов), подтвердить его и запустить программу DISKREET, которая зашифрует файл и даст ему новое имя. Старый незашифрованный файл надо удалить. Для запуска зашифрованной программы надо расшифровать полученный новый файл при помощи программы DISKREET, запустив ее и введя пароль. С помощью программы DISKREET можно также зашифровать и текстовый файл (*. txt), который без расшифровки программой DISKREET нельзя будет прочитать при нажатии на клавишу F3. Зашифрованный текстовый файл должен иметь имя, отличающееся от исходного.

РАБОТА 3. АЛГОРИТМ AES

1. ПОСТАНОВКА ЗАДАЧИ

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

Использовать среду разработки Visual C++.

Составить описание алгоритма и описание особенностей непосредственной реализации алгоритма.

2. ОПИСАНИЕ АЛГОРИТМА

Rijndael - это симметричный блочный алгоритм шифрования с переменной длиной блока и ключа. Длины блока и ключа могут принимать значения 128, 192 и 256, причем в любой комбинации, варьируемое значение длины ключа составляет одно из достоинств стандарта AES, а вот "официальная" длина блока - только 128 бит.

Каждый блок открытого текста зашифровывается несколько раз в так называемых раундах (round) с помощью повторяющейся последовательности различных функций. Число раундов зависит от длины блока и ключа (см. таблицу 1).

Таблица 1 Число раундов в алгоритме Rijndael как функция от длины блока и ключа

Длина ключа в битах

Длина блока (в битах)

128

192

256

128

10

12

14

192

12

12

14

256

14

14

14

Rijndael не относится к алгоритмам на сетях Фейстеля, которые характеризуются тем, что блок текста разбивается на левую и правую половины, затем преобразование раунда применяется к одной половине, результат складывается по модулю 2 с другой половиной, после чего эти половины меняются местами. Самым известным блочным алгоритмом из этой серии является DES. Rijndael, напротив, состоит из отдельных уровней, каждый из которых по-своему воздействует на блок в целом. Для зашифрования блока последовательно выполняются следующие преобразования:

Первый раундовый ключ складывается с блоком по модулю 2 (XOR).

Выполняются Lr - 1 обычных раундов.

Подстановка

(S-блок)

ShiftRow

MixColumn

Сложение с раундовым ключом

Рис.1. Уровни преобразования внутри одного раунда алгоритма Rijndael

Выполняется завершающий раунд, в котором, в отличие от обычного, отсутствует преобразование MixColumn.

Каждый обычный раунд на этапе 2 состоит из четырех отдельных шагов.

Подстановка. Каждый байт блока заменяется значением, которое определяется S-блоком.

Перестановка. Байты в блоке переставляются с помощью преобразования ShiftRow.

Перемешивание. Выполняется преобразование MixColumn.

Сложение с раундовым ключом. Текущий раундовый ключ складывается с блоком по модулю 2.

Каждый уровень оказывает на каждый из блоков открытого текста определенное воздействие.

1. Влияние ключа

Сложение текста с ключом до первого раунда и на последнем шаге внутри каждого раунда влияет на каждый бит результата раунда. В процессе зашифрования результат каждого шага в каждом бите зависит от ключа.

2. Нелинейный уровень

Операция подстановки в S-блоке является нелинейной. Строение S-блоков обеспечивает почти идеальную защиту от дифференциального и линейного криптоанализа.

3. Линейный уровень

Преобразования ShiftRow и MixColumn обеспечивают максимальное перемешивание битов в блоке.

Далее в описании внутренних функций алгоритма Rijndael, через Lb будем обозначать длину блока в четырехбайтовых словах, через Lk - длину ключа пользователя в четырехбайтовых словах (то есть Lb, Lk {4, 6, 8}) и через Lr - число раундов (см. таблицу 1).

Открытый и зашифрованный тексты представлены в виде полей байтов и являются соответственно входом и выходом алгоритма.

Блок открытого текста, обрабатываемый как поле m0,..., m4Lb-1, представлен в виде двумерной структуры (см. таблицу 2). в которой байты открытого текста отсортированы в следующем порядке:

т.е. , где i = n mod 4 и; j = n/4.

Таблица 2

b0,0

b0,1

b0,2

b0,3

b0,4

b0,Lb-1

b1,0

b1,1

b1,2

b1,3

b1,4

b1,Lb-1

b2,0

b2,1

b2,2

b2,3

b2,4

b2,Lb-1

b3,0

b3,1

b3,2

b3,3

b3,4

b3,Lb-1

Доступ к структуре в функциях алгоритма Rijndael осуществляется по-разному, в зависимости от операции. S-блок оперирует с битами, ShiftRow - со строками (bi,0, bi,1, bi,2, …, bi,Lb-1) структуры , а функции AddRoundKey и MixColumn - с четырехбайтовыми словами, обращаясь к столбцам .

2.1 ВЫЧИСЛЕНИЕ КЛЮЧА РАУНДА

И для зашифрования, и для расшифрования требуется сгенерировать Lr раундовых ключей, совокупность которых называется разверткой ключа (key schedule). Развертка строится путем присоединения к секретному ключу пользователя, рекурсивно получаемых: четырехбайтовых слов

.

Первые Lk слов развертки ключа - это сам секретный ключ пользователя. Для Lk {4, 6} очередное четырехбайтовое слово ki определяется как сумма по модулю 2 предыдущего слова ki-1 со словом ki-Lk. При i 0 mod Lk перед операцией XOR нужно применить функцию FLk (k, i), которая включает в себя циклический сдвиг k байтов влево (операция r (k)), подстановку S (r (k)) с использованием S-блока алгоритма Rijndael (к этой операции мы еще вернемся) и сложение по модулю 2 с константой c (i/Lk). Итоговое уравнение функции F таково:

FLk (k, i) = S (r (k)) c (i/Lk).

Константы c (j) задаются равенством c (j) = (rc (j), 0, 0, 0), где значения rc (j) определяются рекурсивно как элементы поля F28:

rc (1) = 1, rc (j) = rc (j-1) х = хj-1.

Или в виде численных значений:

rc (1) = '01', rc (j) = rc (j-1) *'02'.

Программно значение rc (j) реализуется (j - 1) - кратным рекурсивным вызовом функции xtime, с начальным значением аргумента, равным 1 или более быстро - с использованием таблицы предвычислений (см. таблицу 3).

Таблица 3. Константы rc (j) (в шестнадцатеричном виде)

'01'

'02'

'04'

'08'

'10'

'20'

'40'

'80'

'1B'

'36'

'6C

'D8'

'AB'

'4D'

'9A'

'2F'

'5E'

'ВС

'63'

'C6'

'97'

'35'

'6A'

'D4'

'B3'

7O'

'FA'

'EF'

'C5

'91'

Для ключей длины 256 бит (то есть при Lk = 8) введена дополнительная операция подстановки: при i 4 mod Lk перед операцией XOR значение ki-1 заменяется на s (ki-1).

Таким образом, развертка ключей состоит из Lb (Lr + 1) четырехбайтовых слов, включая и секретный ключ пользователя. На каждом раунде i = 0,..., Lr - 1 очередные Lb, четырехбайтовых слова с kLbi по kLb (I+1) выбираются из развертки и используются в качестве ключа раунда. Раундовые ключи рассматриваются, по аналогии с блоками открытого текста, как двумерная структура (см. таблицу 4).

Таблица 4. Представление раундовых ключей

k0,0

k 0,1

k 0,2

k 0,3

k 0,4

k 0,Lb-1

k 1,0

k 1,1

k 1,2

k 1,3

k 1,4

k 1,Lb-1

k 2,0

k 2,1

k 2,2

k 2,3

k 2,4

k 2,Lb-1

k 3,0

k 3,1

k 3,2

k 3,3

k 3,4

k 3,Lb-1

Для ключей длины 128 бит процесс генерации ключа изображен на рис.2.

Рис.2. Диаграмма раундовых ключей для Lk = 4

Пока не известны слабые ключи, использование которых неблагоприятно сказалось бы на стойкости алгоритма Rijndael

2.2 S-БЛОК

Блок подстановки, или S-блок алгоритма Rijndael показывает, каким значением следует заменять каждый байт блока текста на каждом раунде. S-блок представляет собой список из 256 байтов. Сначала каждый ненулевой байт рассматривается как элемент поля F28 и заменяется мультипликативно обратным (нулевые байты остаются неизменными). Затем выполняется следующее аффинное преобразование над полем F2 путем умножения на матрицу и сложения с вектором (11000110):

Здесь через х0 и у0 обозначены младшие, а через х7 и у7 - старшие биты в байте; вектор (11000110) длины 8 соответствует шестнадцатеричному числу '63'.

S-блок построен так, чтобы свести к минимуму чувствительность алгоритма к дифференциальному и линейному методам криптоанализа, а также к алгебраическим атакам. Последовательно применяя приведенную выше процедуру к числам от 0 до 255, получаем таблицу 5 (значения идут по строкам слева направо).

Таблица 5. Значения S-блока

99

124

119

123

242

107

111

197

48

1

103

43

254

215

171

118

202

130

201

125

250

89

71

240

173

212

162

175

156

164

114

192

183

253

147

38

54

63

247

204

52

165

229

241

113

216

49

21

4

199

35

195

24

150

5

154

7

18

128

226

235

39

178

117

9

131

44

26

27

110

90

160

82

59

214

179

41

227

47

132

83

209

0

237

32

252

177

91

106

203

190

57

74

76

88

207

208

239

170

251

67

77

51

133

69

249

2

127

80

60

159

168

81

163

64

143

146

157

56

245

188

182

218

33

16

255

243

210

205

12

19

236

95

151

68

23

196

167

126

61

100

93

25

115

96

129

79

220

34

42

144

136

70

238

184

20

222

94

11

219

224

50

58

10

73

6

36

92

194

211

172

98

145

149

228

121

231

200

55

109

141

213

78

169

108

86

244

234

101

122

174

8

186

120

37

46

28

166

180

198

232

221

116

31

75

189

139

138

112

62

181

102

72

3

246

14

97

53

87

185

134

193

29

158

225

248

152

17

105

217

142

148

155

30

135

233

206

85

40

223

140

161

137

13

191

230

66

104

65

153

45

15

176

84

187

22

При расшифровании порядок действий меняется на противоположный. Сначала выполняется обратное аффинное преобразование, затем мультипликативное обращение в поле F28. Обратный S-блок приведен в таблице 6.

Таблица 6. Значения обратного S-блока

82

9

106

213

48

54

165

56

191

64

163

158

129

243

215

251

124

227

57

130

155

47

255

135

52

142

67

68

196

222

233

203

84

123

148

50

166

194

35

61

238

76

149

11

66

250

195

78

8

46

161

102

40

217

36

178

118

91

162

73

109

139

209

37

114

248

246

100

134

104

152

22

212

164

92

204

93

101

182

146

108

112

72

80

253

237

185

218

94

21

70

87

167

141

157

132

144

216

171

0

140

188

211

10

247

228

88

5

184

179

69

6

208

44

30

143

202

63

15

2

193

175

189

3

1

19

138

107

58

145

17

65

79

103

220

234

151

242

207

206

240

180

230

115

150

172

116

34

231

173

53

133

226

249

55

232

28

117

223

110

71

241

26

113

29

41

197

137

111

183

98

14

170

24

190

27

252

86

62

75

198

210

121

32

154

219

192

254

120

205

90

244

31

221

168

51

136

7

199

49

177

18

16

89

39

128

236

95

96

81

127

169

25

181

74

13

45

229

122

159

147

201

156

239

160

224

59

77

174

42

245

176

200

235

187

60

131

83

153

97

23

43

4

126

186

119

214

38

225

105

20

99

85

33

12

125

2.3 ПРЕОБРАЗОВАНИЕ ShiftRow

Следующий шаг раунда - перестановка байтов в блоке. Порядок байтов меняется в строке (bi,0, bi,1, bi,2,..., bi,Lb-1) структуры В в соответствии с таблицами 7-9.

Операция ShiftRow для блоков длины 128 бит (Lb = 4)

До операции ShiftRow

0

4

8

12

1

5

9

13

2

6

10

14

3

7

11

15

После операции ShiftRow

0

4

8

12

5

9

13

1

10

14

2

6

15

3

7

11

Операция ShiftRow для блоков длины 192 бит (Lb = 6)

До операции ShiftRow

0

4

8

12

16

20

1

5

9

13

17

21

2

6

10

14

18

22

3

7

11

15

19

23

После операции ShiftRow

0

4

8

12

16

20

5

9

13

17

21

1

10

14

18

22

2

6

15

19

23

3

7

11

Операция ShiftRow для блоков длины 256 бит (Lb = 8)

До операции ShiftRow

0

4

8

12

16

20

24

28

1

5

9

13

17

21

25

29

2

6

10

14

18

22

26

30

3

7

11

15

19

23

27

31

После операции ShiftRow

0

4

8

12

16

20

24

28

5

9

13

17

21

25

29

1

14

18

22

26

30

2

6

10

19

23

27

31

3

7

11

15

Все нулевые строки остаются без изменений. В строках i = 1,2,3 байты циклически сдвигаются влево на cLb, i позиций: с позиции с номером j на позицию с номером j - cLb, i mod Lb, где значение cLb, i определяется по таблице 10.

Таблица 10. Размер сдвига строк в операции ShiftRow

Lb

cLb,1

cLb,2

cLb,3

4

1

2

3

6

1

2

3

8

1

3

4

При обратном преобразовании позиция с номером j в строках i = 1,2,3 сдвигается на позицию с номером j + cLb, i mod Lb.

2.4 ПРЕОБРАЗОВАНИЕ MixColumn

После того как выполнена последняя построчная перестановка, на следующем шаге каждый столбец (bi,j) блока текста, где i = 0,...,3, j = 0,...,Lb, представляется в виде полинома над полем F28 и умножается на фиксированный полином a (x) = а3x3 + а2x2 + а1x + a0 с коэффициентами a0 (x) =x, a1 (x) = 1, a2 (x) = 1, a3 (x) = х + 1. Затем вычисляется остаток от деления полученного произведения на модуль М (х) = х4 + 1. Таким образом, каждый байт столбца взаимодействует со всеми остальными байтами столбца. При построковом преобразовании ShiftRow на каждом раунде байты взаимодействуют друг с другом в других комбинациях. То есть эти две операции дают сильное перемешивание.

Этот шаг можно свести к умножению на матрицу:

Умножение на '02' (соответственно на х) мы уже реализовали в виде функции xtime (см. таблицу 3). Умножение на '03' (соответственно на х + 1) тоже сделано по аналогии.

Для обращения преобразования MixColumn умножаем каждый столбец (bi,j) блока текста на полином г (х) = r3х3 + r2х2 + r1х + r0 с коэффициентами r0 (х) =х3 + х2 + х, r1 (х) = х3 + 1, r2 (х) = х3 + х2 + 1, r3 (х) = х3 + х + 1 и приводим результат по модулю М (х) = х4 + 1. Соответствующая матрица имеет вид:

2.5 СЛОЖЕНИЕ С КЛЮЧОМ РАУНДА

На последнем шаге цикла раундовый ключ складывается по модулю 2 с блоком текста:

2.6 ПОЛНАЯ ПРОЦЕДУРА ЗАШИФРОВАНИЯ БЛОКА

Зашифрование по алгоритму Rijndael реализуется в виде следующего псевдокода. Аргументы обрабатываются как указатели на поля байтов или четырехбайтовых слов. Интерпретация полей, переменных и функций дана в таблицах 11-13.

Таблица 11

Интерпретация переменных

Переменные

Интерпретация

Nk

Длина Lk секретного ключа пользователя в четырехбайтовых словах

Nb

Длина Lb блока в четырехбайтовых словах

Nr

Число раундов Lr в соответствии с таблицами выше

Таблица 12

Интерпретация полей

Переменные

Размер в байтах

Интерпретация

CipherKey

4*Nk

Секретный ключ пользователя

ExpandedKey

4*Nb* (Nr+1)

Поле четырехбайтовых слов под развертку ключа

Rcon

4*Nb* (Nr+1) /Nk

Поле четырехбайтовых слов под константы c (j) = (rc (j), 0, 0, 0)

State

4*Nb

Поле ввода открытого текста и вывода зашифрованного текста

RoundKey

4*Nb

Раундовый ключ, фрагмент ExpandedKey

Таблица 13

Интерпретация функций

Функция

Интерпретация

KeyExpansion

Генерация раундового ключа

RotByte

Сдвиг четырехбайтового слова влево на 1 байт: (abcd) (bcda)

ByteSub

Подстановка в S-блоке всех байтов поля

Round

Обычный раунд

FinalRound

Последний раунд без преобразования MixColumn

ShiftRow

Преобразование ShiftRow

MixColumn

Преобразование MixColumn

AddRoundKey

Сложение с ключом раунда

Генерация ключа при Lk < 8:

KeyExpansion (byte CipherKey, word ExpandedKey)

{

for (i = 0; i < Nk; i++)

ExpandedKey [i] = (CipherKey [4*i], CipherKey [4*i + 1], CipherKey [4*i + 2], CipherKey [4*i + 3]);

for (i = Nk; i<Nb* (Nr+1); i++)

{

temp = ExpandedKey [i - 1] ; if (i% Nk == 0)

temp = ByteSub (RotByte (temp)) ^Rcon [i/Nk] ; ExpandedKeyp] = ExpandedKey [i - Nk] ^temp;

}

}

Генерация ключа при Lk = 8:

KeyExpansion (byte CipherKey, word ExpandedKey)

{

for (i = 0; i < Nk; i++)

ExpandedKey [i] = (CipherKey [4*i], CipherKey [4*i + 1], CipherKey [4*i + 2], CipherKey [4*i + 3]);

for (i = Nk; i < Nb * (Nr + 1); i++)

{

temp = ExpandedKey [i - 1] ; if (i% Nk == 0)

temp = ByteSub (RotByte (temp)) ^Rcon [i/Nk] ; else if (i% Nk == 4)

temp = ByteSub (temp); ExpandedKey [i] = ExpandedKey [i - Nk] ^temp;

}

}

Раундовые функции:

Round (word State, word RoundKey)

{

ByteSub (State);

ShiftRow (State); MixColumn (State); AddRoundKey (State, RoundKey)

FinalRound (word State, word RoundKey) {

ByteSub (State);

ShiftRow (State);

AddRoundKey (State, RoundKey)

}

Полная процедура зашифрования блока текста:

Rijndael (byte State, byte CipherKey)

{

KeyExpansion (CipherKey, ExpandedKey);

AddRoundKey (State, ExpandedKey);

for (i = 1; i < Nr; i++)

Round (State, ExpandedKey + Nb*i);

FinalRound (State, ExpandedKey + Nb*Nr);

}

Раундовый ключ можно заготовить и вне функции Rijndael, a вместо ключа пользователя CipherKey использовать развертку ключей ExpandedKey. Преимущества такого варианта очевидны, когда для зашифрования текста длиной более одного блока нужно несколько раз вызывать функцию Rijndael с одним и тем же ключом пользователя.

Rijndael (byte State, byte ExpandedKey)

{

AddRoundKey (State, ExpandedKey);

for (i = 1; i < Nr; i++) Round (State, ExpandedKey + Nb*i);

FinalRound (State, ExpandedKey + Nb*Nr);

}

Для 32-разрядных процессоров раундовое преобразование лучше вычислять заранее и хранить результаты в виде таблиц. Заменяя операции перестановки и умножения на матрицу обращением к таблице, мы значительно сокращаем время работы как при зашифровании, так и (как будет видно позже) при расшифровании. С помощью таблиц вида

каждая из которых содержит по 256 четырехбайтовых слов (здесь w = 0,...,255; S (w) - S-блок подстановки), преобразование блока j = 0,..., Lb - 1, можно быстро выполнить как

,

где (см. ShiftRow) и - j-й столбец раундового ключа.

На последнем раунде преобразование MixColumn не выполняется, поэтому результат получается как

Конечно, можно воспользоваться таблицей из 256 четырехбайтовых слов, тогда

где r (a,b,c,d) = (d,a,b, с) - циклический сдвиг вправо на один байт.д.ля приложений с ограниченной памятью этот вариант чрезвычайно удобен, немного увеличится лишь время вычислений, необходимое для выполнения трех сдвигов.

2.7 РАСШИФРОВАНИЕ

При расшифровании алгоритмом Rijndael процесс зашифрования выполняется в обратном порядке с обратными преобразованиями. Вот эти обратные функции:

InvFinalRound (word State, word RoundKey)

{

AddRoundKey (State, RoundKey);

InvShiftRow (State);

InvByteSub (State);

}

InvRound (word State, word RoundKey)

{

AddRoundKey (State, RoundKey);

InvMixColumn (State);

InvShiftRow (State);

InvByteSub (State);

}

Полная процедура расшифрования выглядит следующим образом:

InvRijndael (byte State, byte CipherKey)

{

KeyExpansion (CipherKey, ExpandedKey);

InvFinalRound (State, ExpandedKey + Nb*Nr);

for (i = Nr - 1; i > 0; i--)

InvRound (State, ExpandedKey + Nb*i);

AddRoundKey (State, ExpandedKey);

}

Алгебраическая структура алгоритма Rijndael позволяет упорядочить преобразования зашифрования так, что и для них можно будет использовать таблицы. Заметим, что подстановка S и преобразование ShiftRow коммутируют, поэтому внутри одного раунда их можно поменять местами. Благодаря свойству гомоморфизма линейных преобразований, операции InvMixColumn и сложение с раундовым ключом можно тоже поменять местами. В пределах одного раунда это выглядит так:

InvFinalRound (word State, word RoundKey)

{

AddRoundKey (State, RoundKey);

InvByteSub (State);

InvShiftRow (State);

}

InvRound (word State, word RoundKey)

{

InvMixColumn (State);

AddRoundKey (State, InvMixColumn (RoundKey));

InvByteSub (State);

InvShiftRow (State);

}

Если порядок функций не менять, то их можно переопределить:

AddRoundKey (State, RoundKey);

InvRound (word State, word RoundKey)

{

InvByteSub (State);

InvShiftRow (State);

InvMixColumn (State);

AddRoundKey (State, InvMixColumn (RoundKey));

}

InvFinalRound (word State, word RoundKey)

{

InvByteSub (State);

InvShiftRow (State);

AddRoundKey (State, RoundKey);

}

Отсюда получаем структуру, аналогичную зашифрованию. Из соображений эффективности в процедуре lnvRound () отложим применение функции InvMixColumn к раундовому ключу до вычисления развертки, в которой первый и последний раундовые ключи из InvMixColumn оставим без изменений. "Обратные" раундовые ключи генерируются процедурой

InvKeyExpansion (byte CipherKey, word InvEpandedKey)

{

KeyExpansion (CipherKey, InvExpandedKey);

for (i = 1; i < Nr; i++)

InvMixColumn (InvExpandedKey + Nb*i);

}

Теперь полная процедура расшифрования выглядит так:

InvRijndael (byte State, byte CipherKey)

{

InvKeyExpansion (CipherKey, InvExpandedKey);

AddRoundKey (State, InvExpandedKey + Nb*Nr);

for (i = Nr-1; i>0; i--)

InvRound (State, InvExpandedKey + Nb*i);

InvFinalRound (State, InvExpandedKey);

}

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

(где w = 0,...,255; S-1 (w) - обратный S-блок подстановки) получаем результат обратного раундового преобразования блока j = 0,..., Lb - 1:

,

где и - j-й столбец "обратного" раундового ключа.

Здесь на последнем раунде тоже не выполняется преобразование MixColumn, и результатом последнего раунда будет

,

где j = 0,…,Lb -1.

Для экономии памяти для расшифрования также можно составить таблицу всего из 256 четырехбайтовых слов, в которой

,

где r (а,b,c,d) = (d,a,b, с) - циклический сдвиг вправо на один байт.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. М. Вельшенбах. Криптография на Си и С++ в действии. М.: ТРИУМФ, 2004.

2. М. Яхтсмен. Теория и практика информационной безопасности. Под редакцией Зегжды П.Д. 1996.

3. Методы и средства защиты компьютерной информации. Методические указания к лабораторным работам для студентов специальности 220100 - Вычислительные машины, комплексы, системы и сети и направления 552800 - Информатика и вычислительная техника Сост.С. С. Соколов.

4. Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2005.33 с.

РАБОТА 4. КРИПТОСИСТЕМА PGP

Задание: провести шифрование и расшифрование текстов с помощью криптосистемы PGP.

1. ХАРАКТЕРИСТИКА PGP

PGP (Pretty Good Privacy) - это криптографическая (шифровальная) программа с высокой степенью надежности, которая позволяет пользователям обмениваться информацией в электронном виде в режиме полной конфиденциальности.

Главное преимущество этой программы состоит в том, что для обмена зашифрованными сообщениями пользователям нет необходимости передавать друг другу тайные ключи, т.к эта программа построена на новом принципе работы - публичной криптографии или обмене открытыми (публичными) ключами, где пользователи могут открыто посылать друг другу свои публичные ключи с помощью сети "Интернет" и при этом не беспокоиться о возможности несанкционированного доступа каких-либо третьих лиц к их конфиденциальным сообщениям.

В PGP применяется принцип использования двух взаимосвязанных ключей: открытого и закрытого. К закрытому ключу имеете доступ только вы, а свой открытый ключ вы распространяете среди своих корреспондентов.

Еще одно преимущество этой программы состоит также в том, что она бесплатная и любой пользователь, имеющий доступ к Интернету, может ее закачать на свой компьютер в течение получаса. PGP шифрует сообщение таким образом, что никто кроме получателя сообщения, не может ее расшифровать. Создатель PGP Филипп Циммерман открыто опубликовал код программы, который неоднократно был исследован специалистами крипто-аналитиками высочайшего класса и ни один из них не нашел в программе каких-либо слабых мест.

Филипп Циммерман следующим образом объясняет причину создания программы: "Людям необходима конфиденциальность. PGP распространяется как огонь в прериях, раздуваемый людьми, которые беспокоятся о своей конфиденциальности в этот информационный век. Сегодня организации по охране прав человека используют программу PGP для защиты своих людей за рубежом. Организация Amnesty International также использует ее". Пользователям сети Интернет рекомендуется использовать эту программу именно по той же причине, почему люди предпочитают посылать друг другу письма в конвертах, а не на открытках, которые могут быть легко прочитаны почтовыми служащими. Дело в том, что электронные сообщения, в том виде и формате, который существует на сегодняшний день, легко могут быть прочитаны и архивированы любым человеком, имеющим доступ к серверу Интернет провайдера (поставщика услуг сети Интернет). В настоящий момент спецслужбам проще и дешевле подключиться к электронным адресам большого количества лиц, нежели к телефонным разговорам. Здесь вообще ничего делать не надо. Все сделает компьютер. Агенту спецслужбы или другому заинтересованному человеку остается только сесть за компьютер и просмотреть все ваши сообщения. Научно-технический прогресс облегчил задачу таким людям, однако, этот же самый прогресс предоставил возможность пользователям сети Интернет скрыть свои сообщения от третьих лиц таким образом, что даже суперкомпьютер стоимостью несколько десятков миллионов долларов не способен их расшифровать.

2. КАК PGP РАБОТАЕТ

Когда пользователь шифрует сообщение с помощью PGP, то программа сначала сжимает текст, что сокращает время на отправку сообщения через модем и увеличивает надежность шифрования. Большинство приемов криптоанализа (взлома зашифрованных сообщений) основаны на исследовании рисунков, присущих текстовым файлам, что помогает взломать ключ. Сжатие ликвидирует эти рисунки и таким образом повышает надежность зашифрованного сообщения. Затем PGP генерирует сессионный ключ, который представляет собой случайное число, созданное за счет движений вашей мышки и нажатий на клавиши клавиатуры.

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

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

Ключи.

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

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

Ключи хранятся на жестком диске вашего компьютера в зашифрованном состоянии в виде двух файлов: одного для открытых ключей, а другого - для закрытых. Эти файлы называются "кольцами" (keyrings). В течение работы с программой PGP вы, как правило, будете вносить открытые ключи ваших корреспондентов в открытые "кольца". Ваши закрытые ключи хранятся в вашем закрытом "кольце". При потере вашего закрытого "кольца" вы не сможете расшифровать любую информацию, зашифрованную с помощью ключей, находящихся в этом "кольце".

Цифровая подпись.

Огромным преимуществом публичной криптографии также является возможность использования цифровой подписи, которая позволяют получателю сообщения удостовериться в личности отправителя сообщения, а также в целостности (верности) полученного сообщения. Цифровая подпись исполняет ту же самую функцию, что и ручная подпись. Однако ручную подпись легко подделать. Цифровую же подпись почти невозможно подделать.

Хэш-функция.

Еще одно важное преимущество использования PGP состоит в том, что PGP применяет так называемую "хэш-функцию", которая действует таким образом, что в том случае какого-либо изменения информации, пусть даже на один бит, результат "хэш-функции" будет совершенно иным. С помощью "хэш-функции" и закрытого ключа создается "подпись", передаваемая программой вместе с текстом. При получении сообщения получатель использует PGP для восстановления исходных данных и проверки подписи.

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

Парольная фраза.

Большинство людей, как правило, знакомы с парольной системой защиты компьютерных систем от третьих лиц. Парольная фраза - это сочетание нескольких слов, которое теоретически более надежно, чем парольное слово. В виду того, что парольная фраза состоит из нескольких слов, она практически неуязвима против так называемых "словарных атак", где атакующий пытается разгадать ваш пароль с помощью компьютерной программы, подключенной к словарю. Самые надежные парольные фразы должны быть достаточно длинными и сложными и должны содержать комбинацию букв из верхних и нижних регистров, цифровые обозначения и знаки пунктуации.

Парольная фраза должна быть такой, чтобы ее потом не забыть и чтобы третьи лица не могли ее разгадать. Если вы забудете свою парольную фразу, то уже никогда не сможете восстановить свою зашифрованную информацию. Ваш закрытый ключ абсолютно бесполезен без знания парольной фразы и с этим ничего не поделаешь.

3. ОСНОВНЫЕ ШАГИ В ИСПОЛЬЗОВАНИИ PGP

Установите программу на свой компьютер. Руководствуйтесь краткой инструкцией по инсталляции программы, приведенной ниже.

Создайте закрытый и открытый ключ. Перед тем, как вы начнете использовать программу PGP, вам необходимо генерировать пару ключей, которая состоит из закрытого ключа, к которому имеете доступ только вы, и открытый ключ, который вы копируете и свободно передаете другим людям (вашим корреспондентам).

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

Удостовериться в верности открытого ключа. Как только вы получите открытые ключи своих корреспондентов, то их можно внести в "кольцо" открытых ключей. После этого вам необходимо убедиться в том, что у вас действительно открытый ключ вашего корреспондента. Вы можете это сделать, связавшись с этим корреспондентом и, попросив его зачитать вам по телефону "отпечатки пальцев" (уникальный идентификационный номер) его открытого ключа, а также сообщив ему номер вашего ключа. Как только вы убедитесь в том, что ключ действительно принадлежит ему, вы можете его подписать и таким образом подтвердить ваше доверие к этому ключу.

Шифрование и удостоверение корреспонденции вашей цифровой подписью. После генерации пары ключей и обмена открытыми ключами вы можете начать шифрование и удостоверение ваших сообщений и файлов своей цифровой подписью. Если вы используете почтовую программу, которая поддерживается программой PGP, то вы можете шифровать и дешифровать всю вашу корреспонденцию, находясь прямо в этой программе. Если же ваша почтовая программа не поддерживается программой PGP, то вы можете шифровать вашу корреспонденцию другими способами (через буфер обмена или шифрованием файлов целиком).

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

Уничтожение файлов. Когда вам необходимо полностью удалить какой-либо файл, вы можете исполнить команду wipe (стереть). Таким образом, удаленный файл уже невозможно будет восстановить.

4. ИНСТАЛЛЯЦИЯ PGP

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

PGP Installation program:

Нажмите Next

Software License agreement:

Согласны ли вы с лицензионным соглашением? Если согласны, то тогда нажмите Yes

User information:

Информация о пользователе. Заполните необходимые поля и нажмите Next

Setup: choose installation directory:

Выберите каталог, куда будет проинсталлирована PGP. Если никаких особых пожеланий по этому поводу нет, то нажмите Next

Select components:

Программа инсталляции предлагает выбрать компоненты, которые будут установлены. Обязательны для инсталляции Program Files. Далее вы можете отметить птичкой плагин для той почтовой программы, которой вы пользуетесь. Если ее в списке нет, то ничего помечать не нужно. Можете также пометить файлы документации (User's manual) и программу PGP Disk for Windows (рекомендуется).

Нажмите Next.

Check setup information Пронрамма инсталляции что-то там проверит... Смело жмите Next и начнется копирование файлов на жесткий диск.

Для того чтобы программа автоматически запустила операцию создания ключей после перезагрузки компьютера нажать на кнопку "Yes I want to run PGP keys"

Нажмите Finish и на предложение программы инсталляции о перезапуске компьютеры ответьте положительно.

Компьютер перезапустится и на этом программа установки завершится.

Теперь необходимо сгенерировать два ключа:

public key - открытый ключ private key - закрытый ключ

5. ГЕНЕРАЦИЯ КЛЮЧЕЙ

После перезагрузки компьютера в правом нижнем углу панели задач (возле часов) появится значок PGP. Кликните по нему и выберите Launch PGP Keys

В меню Keys выберите пункт New Key. Нажмите Next и заполните необходимые формы (имя и E-Mail). Нажмите Next

Выберите размер ключа (2048 рекомендуется) и нажмите Next. Поставьте птичку напротив фразы "Key pair never expires" и нажмите Next.

Два раза введите парольную фразу и нажмите Next.

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

Когда программа выдаст сообщение о том, что процесс генерации закончен, нажмите Next и затем "Done".

На этом процесс создания пары ключей закончился и можно начинать пользоваться программой.

Теперь, после установки программы, необходимо обменяться со своими корреспондентами открытыми ключами. Для этого снова запустите PGP Keys, правой кнопкой мыши кликните файл со своим ключом и выберите пункт Export. Программа предложит вам выбрать путь и имя файла. Этот файл вы должны послать своему корреспонденту, в обмен на его открытый ключ. Когда вы получите необходимый ключт от своего корреспондента, двойным кликом мыши по нему начните процесс импорта (Import). Теперь можно пересылать друг другу зашифрованные сообщения, которые шифруются открытым ключом получателя сообщения.

6. КАК ПОСЛАТЬ ЗАШИФРОВАННОЕ СООБЩЕНИЕ

После того, как открытый (публичный) ключ вашего корреспондента установится на вашем компьютере, сообщение можно отправлять получателю следующим образом:

Составляем сообщение в почтовой программе, например в Outlook Express

Выделяем текст сообщения (Ctrl+A или Правка-Выделить все) и копируем его в буфер обмена (Ctrl+C или Правка-Копировать). Затем кликаем по иконке PGP на панели задач и выбираем путкт Encrypt Clipboard. Появляется диалог Key Selection Dialog. Дважды щелкните по открытому ключу того, кому собираетесь отправить сообщение и нажмите ОК. PGP зашифрует содержимое буфера обмена.

В поле сообщения снова выделяем весь текст и вставляем только что зашифрованное содержимое буфера обмена, выбрав в меню Правка пункт Вставить (или просто нажав Ctrl+V).

Вот и все. Можно отправлять сообщение!

Шифровка файлов для Attachment (вложений).

Кликните правой кнопкой мыши необходимый файл (например, то же сообщение, созданное в текстовои редакторе) и выберите пункт "PGP-Encrypt". Появится диалоговое окно со списком доступных ключей, выберите ключ своего корреспондента. Файл будет зашифрован и его расширение изменится на pgp. Присоедините этот файл к своему сообщениею и можете не беспокоиться о том, что ваша информация станет достоянием третьих лиц.

7. РАСШИФРОВКА СООБЩЕНИЙ

Расшифровка текста сообщения.

Открываем зашифрованное сообщение и выделяем весь его текст (Ctrl+A), затем копируем его в буфер обмена (Ctrl+C). Кликнув по иконке PGP на панели задач, выбираем пункт "decrypt and verify clipboard". PGP попросит вас ввести парольную фразу. Если фраза введена корректно, содержимое буфера обмена будет дешифровано.

Расшифровка вложений.

Сохраните вложение где-нибудь на жестком диске. Кликните по этому файлу правой кнопкой мыши и выберите пункт "PGP-Decrypt". Программа предложит ввести вашу парольную фразу и, если она была введена корректно, файл будет дешифрован.

РАБОТА 5. ВИРУСЫ И АНТИВИРУСНЫЕ ПРОГРАММЫ

Задание. Ознакомьтесь с проявлениями некоторых вирусов (программа mvdemo. exe, электронный каталог вирусов). Проведите антивирусный контроль раздела диска с предварительной записью на него имитаторов вирусов.

Существует два подхода к распознаванию вредоносного кода: сигнатурный и эвристический. "Сигнатура" от слова "подпись" - "особые приметы" конкретного злодея. Для успешного применения сигнатурного метода необходимо иметь полную базу данных существующих вирусов и троянов. Очевидно, что между появлением вируса и внесением его "примет" в антивирусные базы проходит некоторое время. Пользователю остается надеяться на то, что производитель антивируса внесет сигнатуру нового вируса раньше, чем последний доберется до его, пользователя, компьютера. Иногда пользователь рискует заполучить вирус, который нарушает работу антивирусного ПО, делая невозможным обновления антивирусных баз, а то и вовсе блокируя антивирус. Продвинутые создатели вирусов хорошо знакомы с принципами работы антивирусного ПО и создают вирусы, способные самостоятельно изменять свой программный код (время от времени делать себе "пластическую операцию").

Эвристический анализ - попытка применить "искусственный интеллект". Создателям антивирусного ПО известны "привычки" злодеев. На основании анализа поведения проверяемого объекта, его структуры, антивирус может заподозрить неладное и сообщить об этом пользователю. Легальный пользователь может отправить подозрительный объект производителю своего антивируса для исследования, или просто удалить.

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

В наше время наибольшей опасности подвержены пользователи сетей, прежде всего Интернет, распространение которого подготовило почву новым злодейским технологиям. Прежде всего, на смену дискетам пришла электронная почта. Тут наблюдается практически полная аналогия. Иногда достаточно просто "открыть" письмо в почтовом клиенте или окне браузера, не говоря об открытии безобидного с виду файла, фотографии, например, чтобы заполучить на компьютер заразу.

"Шагом вперед" стали "почтовые черви", рассылающие сами себя по адресам из адресной книги, если таковая имеется на зараженном компьютере.

Настоящим прорывом было появление интернет-червей, распространяющихся безо всякой почты. Червь, обосновавшись на одном из компьютеров, начинает сканировать определенный диапазон адресов в поисках следующих жертв. Уязвимому компьютеру достаточно войти в сеть и "ждать своего часа". Впрочем, если "повезет", достаточно и минуты. Заметьте, для того, чтобы заразиться, не обязательно посещать какие-то, сайты, читать почту и так далее.

Далеко не каждый станет писать вирус из любви к искусству или из тщеславия. В последнее время чаще всего мотивом является получение материальной выгоды. Вот несколько схем получения таковой:

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

2. Вирус протоколирует ввод с клавиатуры и высылает отчеты хозяину. Таким образом злодей может получить пароли доступа к чему угодно, включая банковский счет. К счастью, для доступа к счету обычно требуется еще и "ключ" (например, специально подготовленная дискета). Комментарии излишни.

3. Вирус ищет на компьютере жертвы документы, интересующие хозяина.

4. Хозяин вируса - "звонилки" организует телефонную компанию, звонки на телефоны - платные (тариф - космический). Вирус меняет на компьютере жертвы телефон дозвона до интернет-провайдера. На другом конце запросто может стоять модем, и даже обеспечивать доступ в интернет (сам не видел, но могу предположить). Пока там пользователь разберется, почему не работает интернет (а если работает???)...


Подобные документы

  • Комбинированное использование симметричного и асимметричного шифрования. Зависимость между открытым и закрытым ключами. Основные недостатки симметричного шифрования. Схема двухстороннего конфиденциального обмена. Концепция шифрования по алгоритму DES.

    презентация [1,4 M], добавлен 20.12.2012

  • Симметричные криптосистемы как способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. Разбор и реализация шифрования алгоритма: простая и двойная перестановка, перестановка "магический квадрат".

    курсовая работа [3,3 M], добавлен 11.03.2013

  • История возникновения алгоритма симметричного шифрования, условия и особенности его применения на современном этапе. Принципы и функции исследуемой технологии. Анализ главных преимуществ и недостатков использования алгоритма, оценка его уязвимости.

    курсовая работа [301,9 K], добавлен 29.10.2017

  • История появления симметричных алгоритмов шифрования. Роль симметричного ключа в обеспечении степени секретности сообщения. Диффузия и конфузия как способы преобразования бит данных. Алгоритмы шифрования DES и IDEA, их основные достоинства и недостатки.

    лабораторная работа [335,9 K], добавлен 18.03.2013

  • Криптография и шифрование. Симметричные и асимметричные криптосистемы. Основные современные методы шифрования. Алгоритмы шифрования: замены (подстановки), перестановки, гаммирования. Комбинированные методы шифрования. Программные шифраторы.

    реферат [57,7 K], добавлен 24.05.2005

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

    дипломная работа [802,2 K], добавлен 08.06.2013

  • Особенности шифрования данных, предназначение шифрования. Понятие криптографии как науки, основные задачи. Анализ метода гаммирования, подстановки и метода перестановки. Симметрические методы шифрования с закрытым ключом: достоинства и недостатки.

    курсовая работа [564,3 K], добавлен 09.05.2012

  • Описания режимов шифрования с использованием электронной книги кодов, с посимвольной и внутренней обратной связью. Генератор реальных случайных последовательностей. Линейный сдвиговый регистр с обратной связью. Генерация ключей в министерстве обороны США.

    реферат [206,1 K], добавлен 18.01.2015

  • Симметричные криптосистемы; алгоритмы шифрования и дешифрования данных, их применение в компьютерной технике в системах защиты конфиденциальной и коммерческой информации. Основные режимы работы алгоритма DES, разработка программной реализации ключа.

    курсовая работа [129,6 K], добавлен 17.02.2011

  • Изучение основных методов защиты от угроз конфиденциальности, целостности и доступности информации. Шифрование файлов являющихся конфиденциальной собственностью. Использование цифровой подписи, хеширование документов. Защита от сетевых атак в интернете.

    курсовая работа [469,6 K], добавлен 13.12.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.