Сущность и основные виды шифрования

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

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 16.10.2016
Размер файла 190,4 K

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

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

Размещено на http://www.allbest.ru/

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ

УНИВЕРСИТЕТ им. Р.Е.АЛЕКСЕЕВА

Институт радиоэлектроники и информационных технологий

Кафедра информатики и систем управления

Реализация методов симметричного и ассиметричного шифрования (наименование темы проекта или работы)

Контрольная работа

по дисциплине Методы обеспечения безопасности информационных систем

Студент:

Уразбахтин И.А.

Проверил:

Капранов С.Н.

Нижний Новгород 2015

Шифровамние -- обратимое преобразование информации в целях сокрытия от неавторизованных лиц, с предоставлением, в это же время, авторизованным пользователям доступа к ней.

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

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

В целом, шифрование состоит из двух составляющих -- зашифрование и расшифрование.

С помощью шифрования обеспечиваются три состояния безопасности информации:

· Конфиденциальность.

Шифрование используется для скрытия информации от неавторизованных пользователей при передаче или при хранении.

· Целостность.

Шифрование используется для предотвращения изменения информации при передаче или хранении.

· Идентифицируемость.

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

Методы шифрования

Симметричное шифрование использует один и тот же ключ и для зашифрования, и для расшифрования.

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

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

Симметричное шифрование

Симметричное шифрование

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

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

Схема реализации

Задача. Есть два собеседника -- Алиса и Боб, они хотят обмениваться конфиденциальной информацией.

Генерация ключа.

Боб (или Алиса) выбирает ключ шифрования dи алгоритм E, D(функции шифрования и расшифрования), затем посылает эту информацию Алисе (Бобу).

Шифрование и передача сообщения.

Алиса шифрует информацию с использованием полученного ключа d.

E(m,d) = c

И передает Бобу полученный шифротекст c. То же самое делает Боб, если хочет отправить Алисе сообщение.

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

Боб(Алиса), с помощью того же ключа d, расшифровывает шифротекст c.

D(c,d) = m

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

Асимметричное шифрование (с открытым ключом)

Асимметричное шифрование

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

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

Первыми исследователями, которые изобрели и раскрыли понятие шифрования с открытым кодом, были Уитфилд Диффи и Мартин Хеллман из Стэнфордского университета и Ральф Меркле из Калифорнийского университета в Беркли. В 1976 году их работа «Новые направления в современной криптографии» открыла новую область в криптографии, теперь известную как криптография с открытым ключом.

Схема реализации

Задача. Есть два собеседника -- Алиса и Боб, Алиса хочет передавать Бобу конфиденциальную информацию.

Генерация ключевой пары.

Боб выбирает алгоритм (E, D) и пару открытый, закрытый ключи -- (e,d) и посылает открытый ключ e Алисе по открытому каналу.

Шифрование и передача сообщения.

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

E(m,e) = c

И передает Бобу полученный шифротекст c.

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

Боб, с помощью закрытого ключа d, расшифровывает шифротекст c.

D(c,d) = m

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

Реализация

Для реализации были выбраны два алгоритма :

Симметричный - AES

Ассиметричный - RSA

Advanced Encryption Standard (AES), также известный как Rijndael (произносится [r?inda?l] (Рэндал[1])) -- симметричный алгоритм блочного шифрования (размер блока 128 бит, ключ 128/192/256 бит), принятый в качестве стандарта шифрования правительством США по результатам конкурса AES. Этот алгоритм хорошо проанализирован и сейчас широко используется, как это было с его предшественником DES. Национальный институт стандартов и технологий США (англ. National Institute of Standards and Technology, NIST) опубликовал спецификацию AES 26 ноября 2001 года после пятилетнего периода, в ходе которого были созданы и оценены 15 кандидатур. 26 мая 2002 года AES был объявлен стандартом шифрования. По состоянию на 2009 год AES является одним из самых распространённых алгоритмов симметричного шифрования.

Aes.py

Sbox = (

0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76,

0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0,

0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15,

0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75,

0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84,

0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF,

0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8,

0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2,

0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73,

0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB,

0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79,

0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08,

0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A,

0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E,

0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF,

0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16,

)

InvSbox = (

0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB,

0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB,

0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E,

0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25,

0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92,

0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84,

0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06,

0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B,

0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73,

0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E,

0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B,

0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4,

0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F,

0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF,

0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61,

0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D,

)

xtime = lambda a: (((a << 1) ^ 0x1B) & 0xFF) if (a & 0x80) else (a << 1)

Rcon = (

0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40,

0x80, 0x1B, 0x36, 0x6C, 0xD8, 0xAB, 0x4D, 0x9A,

0x2F, 0x5E, 0xBC, 0x63, 0xC6, 0x97, 0x35, 0x6A,

0xD4, 0xB3, 0x7D, 0xFA, 0xEF, 0xC5, 0x91, 0x39,

)

def text2matrix(text):

matrix = []

for i in range(16):

byte = (text >> (8 * (15 - i))) & 0xFF

if i % 4 == 0:

matrix.append([byte])

else:

matrix[i / 4].append(byte)

return matrix

def matrix2text(matrix):

text = 0

for i in range(4):

for j in range(4):

text |= (matrix[i][j] << (120 - 8 * (4 * i + j)))

return text

class AES:

def __init__(self, master_key):

self.change_key(master_key)

def change_key(self, master_key):

self.round_keys = text2matrix(master_key)

# print self.round_keys

for i in range(4, 4 * 11):

self.round_keys.append([])

if i % 4 == 0:

byte = self.round_keys[i - 4][0] \

^ Sbox[self.round_keys[i - 1][1]] \

^ Rcon[i / 4]

self.round_keys[i].append(byte)

for j in range(1, 4):

byte = self.round_keys[i - 4][j] \

^ Sbox[self.round_keys[i - 1][(j + 1) % 4]]

self.round_keys[i].append(byte)

else:

for j in range(4):

byte = self.round_keys[i - 4][j] \

^ self.round_keys[i - 1][j]

self.round_keys[i].append(byte)

# print self.round_keys

def encrypt(self, plaintext):

self.plain_state = text2matrix(plaintext)

self.__add_round_key(self.plain_state, self.round_keys[:4])

for i in range(1, 10):

self.__round_encrypt(self.plain_state, self.round_keys[4 * i : 4 * (i + 1)])

self.__sub_bytes(self.plain_state)

self.__shift_rows(self.plain_state)

self.__add_round_key(self.plain_state, self.round_keys[40:])

return matrix2text(self.plain_state)

def decrypt(self, ciphertext):

self.cipher_state = text2matrix(ciphertext)

self.__add_round_key(self.cipher_state, self.round_keys[40:])

self.__inv_shift_rows(self.cipher_state)

self.__inv_sub_bytes(self.cipher_state)

for i in range(9, 0, -1):

self.__round_decrypt(self.cipher_state, self.round_keys[4 * i : 4 * (i + 1)])

self.__add_round_key(self.cipher_state, self.round_keys[:4])

return matrix2text(self.cipher_state)

def __add_round_key(self, s, k):

for i in range(4):

for j in range(4):

s[i][j] ^= k[i][j]

def __round_encrypt(self, state_matrix, key_matrix):

self.__sub_bytes(state_matrix)

self.__shift_rows(state_matrix)

self.__mix_columns(state_matrix)

self.__add_round_key(state_matrix, key_matrix)

def __round_decrypt(self, state_matrix, key_matrix):

self.__add_round_key(state_matrix, key_matrix)

self.__inv_mix_columns(state_matrix)

self.__inv_shift_rows(state_matrix)

self.__inv_sub_bytes(state_matrix)

def __sub_bytes(self, s):

for i in range(4):

for j in range(4):

s[i][j] = Sbox[s[i][j]]

def __inv_sub_bytes(self, s):

for i in range(4):

for j in range(4):

s[i][j] = InvSbox[s[i][j]]

def __shift_rows(self, s):

s[0][1], s[1][1], s[2][1], s[3][1] = s[1][1], s[2][1], s[3][1], s[0][1]

s[0][2], s[1][2], s[2][2], s[3][2] = s[2][2], s[3][2], s[0][2], s[1][2]

s[0][3], s[1][3], s[2][3], s[3][3] = s[3][3], s[0][3], s[1][3], s[2][3]

def __inv_shift_rows(self, s):

s[0][1], s[1][1], s[2][1], s[3][1] = s[3][1], s[0][1], s[1][1], s[2][1]

s[0][2], s[1][2], s[2][2], s[3][2] = s[2][2], s[3][2], s[0][2], s[1][2]

s[0][3], s[1][3], s[2][3], s[3][3] = s[1][3], s[2][3], s[3][3], s[0][3]

def __mix_single_column(self, a):

# please see Sec 4.1.2 in The Design of Rijndael

t = a[0] ^ a[1] ^ a[2] ^ a[3]

u = a[0]

a[0] ^= t ^ xtime(a[0] ^ a[1])

a[1] ^= t ^ xtime(a[1] ^ a[2])

a[2] ^= t ^ xtime(a[2] ^ a[3])

a[3] ^= t ^ xtime(a[3] ^ u)

def __mix_columns(self, s):

for i in range(4):

self.__mix_single_column(s[i])

def __inv_mix_columns(self, s):

# see Sec 4.1.3 in The Design of Rijndael

for i in range(4):

u = xtime(xtime(s[i][0] ^ s[i][2]))

v = xtime(xtime(s[i][1] ^ s[i][3]))

s[i][0] ^= u

s[i][1] ^= v

s[i][2] ^= u

s[i][3] ^= v

self.__mix_columns(s)

test.py

import unittest

rom aes import AES

class AES_TEST(unittest.TestCase):

def setUp(self):

master_key = 0x000102030405060708090a0b0c0d0e0f

self.AES = AES(master_key)

def test_encryption_decription(self):

laintext = 0x00112233445566778899aabbccddeeff

print "plain text =", hex(plaintext)

encrypted = self.AES.encrypt(plaintext)

print "encripted text =", hex(encrypted)

decrypted = self.AES.decrypt(encrypted)

print "decrypted text =", hex(decrypted)

if __name__ == '__main__':

unittest.main()

RSA.py

import random

def gcd(a, b):

while b != 0:

a, b = b, a % b

return a

def multiplicative_inverse(e, phi):

d = 0

x1 = 0

x2 = 1

y1 = 1

temp_phi = phi

while e > 0:

temp1 = temp_phi/e

temp2 = temp_phi - temp1 * e

temp_phi = e

e = temp2

x = x2- temp1* x1

y = d - temp1 * y1

x2 = x1

x1 = x

d = y1

y1 = y

if temp_phi == 1:

return d + phi

def is_prime(num):

if num == 2:

return True

if num < 2 or num % 2 == 0:

return False

for n in xrange(3, int(num**0.5)+2, 2):

if num % n == 0:

return False

return True

def generate_keypair(p, q):

if not (is_prime(p) and is_prime(q)):

raise ValueError('Both numbers must be prime.')

elif p == q:

raise ValueError('p and q cannot be equal')

#n = pq

n = p * q

phi = (p-1) * (q-1)

# Vybrat' tseloye chislo takoye, chto ye i fi ( p) vzaimno prosty

e = random.randrange(1, phi)

#ispol Algoritm Yevklida proverit', chto ye i fi (N) vzaimno prosty

g = gcd(e, phi)

while g != 1:

e = random.randrange(1, phi)

g = gcd(e, phi)

#use Rasshirennogo algoritma Yevklida dlya generirovaniya sekretnyy klyuch

d = multiplicative_inverse(e, phi)

#Return zakrytogo i chastnogo pary klyuchey

#Public Klyuch (ye, p) i zakrytyy klyuch ( D, N )

return ((e, n), (d, n))

def encrypt(pk, plaintext):

key, n = pk

#Convert Kazhdoy bukvy v nezashifrovannom vide na nomera , osnovannogo na kharaktere , ispol'zuya ^ b ??mod m

cipher = [(ord(char) ** key) % n for char in plaintext]

#Return massiv bytes

return cipher

def decrypt(pk, ciphertext):

#Unpack Klyuch v yeye komponentov

key, n = pk

#Generate Otkrytyy tekst na osnove zashifrovannogo

#teksta i klyucha , ispol'zuya ^ b ??mod m

plain = [chr((char ** key) % n) for char in ciphertext]

#Return Massiv baytov v vide stroki

return ''.join(plain)

if __name__ == '__main__':

'''

Detect if the script is being run directly by the user

'''

print "RSA Encrypter/ Decrypter"

p = int(raw_input("Enter a prime number (17, 19, 23, etc): "))

q = int(raw_input("Enter another prime number (Not one you entered above): "))

print "Generating your public/private keypairs now . . ."

public, private = generate_keypair(p, q)

print "Your public key is ", public ," and your private key is ", private

message = raw_input("Enter a message to encrypt with your private key: ")

encrypted_msg = encrypt(private, message)

print "Your encrypted message is: "

print ''.join(map(lambda x: str(x), encrypted_msg))

print "Decrypting message with public key ", public ," . . ."

print "Your message is:"

print decrypt(public, encrypted_msg)

Размещено на Allbest.ru

...

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

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

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

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

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

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

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

  • Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.

    курсовая работа [101,1 K], добавлен 09.03.2009

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

    реферат [452,2 K], добавлен 31.05.2013

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

    краткое изложение [26,3 K], добавлен 12.06.2013

  • Основные методы криптографической защиты информации. Система шифрования Цезаря числовым ключом. Алгоритмы двойных перестановок и магические квадраты. Схема шифрования Эль Гамаля. Метод одиночной перестановки по ключу. Криптосистема шифрования данных RSA.

    лабораторная работа [24,3 K], добавлен 20.02.2014

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

    лабораторная работа [326,0 K], добавлен 04.11.2013

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

    контрольная работа [3,2 M], добавлен 30.11.2013

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

    курсовая работа [2,0 M], добавлен 17.11.2011

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

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

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

    лабораторная работа [97,5 K], добавлен 18.04.2015

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

    курсовая работа [545,2 K], добавлен 29.11.2010

  • Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.

    курсовая работа [795,7 K], добавлен 02.12.2014

  • Разработка программы, реализующей процедуры шифрования и расшифрования текста по стандарту DES (Data Encryption Standard). Структура алгоритма шифрования, схема выработки ключевых элементов. Использование криптографического программного средства.

    курсовая работа [1,7 M], добавлен 15.06.2013

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

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

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

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

  • Реализация алгоритма DES и режимов шифрования для любой длины сообщения и любой длины ключа. Шифрование сообщений различной длины и ключа с замериванием времени и скорости шифрования. Реализация алгоритма RSA. Сохранение зашифрованного файла на диск.

    курсовая работа [398,4 K], добавлен 26.01.2010

  • Сравнение производительности программных реализаций алгоритмов шифрования с оптимизациями под языки С и Java. История разработки, сущность, принципы шифрования и успехи в криптоанализе таких алгоритмов шифрования как AES, RC4, RC5, RC6, Twofish и Mars.

    реферат [1,3 M], добавлен 13.11.2009

  • Защита данных, хранящихся на диске, от несанкционированного доступа путем их шифрования. Основные этапы процедуры шифрования и расшифровки файлов. Архивирование файла с паролем. Назначение и функции технологии шифрования BitLocker и её отличия от EFS.

    контрольная работа [743,4 K], добавлен 14.03.2019

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