Функции | |
def | rsaKeys |
Генерация ключей. | |
def | encrypt1 |
Функция шифрования (1 блока). | |
def | decrypt1 |
Функция расшифровки (1 блока). | |
def | encrypt |
Функция шифрования. | |
def | decrypt |
Функция расшифровки. | |
def | test |
Тестирование системы RSA. | |
def | testWithZip |
Тестирование системы RSA (с жатием). |
все необходимое для построение системы шифрации дешифрации RSA здесь сильно испоьзуются функции из src.numericUtil и src.stringUtil
def src.Rsa.decrypt | ( | encryptList, | ||
secretKey | ||||
) |
Функция расшифровки.
Расшифровываем каждый болк из encryptList; перегоняем в строку, полученные строки конкатенируем.
secretKey | двойка чисел (d, n) играет роль "секретного ключа RSA" и держится в секрете. | |
encryptList | список зашифрованных блоков |
def src.Rsa.decrypt1 | ( | message, | ||
secretKey | ||||
) |
Функция расшифровки (1 блока).
secretKey | двойка чисел (d, n) играет роль "секретного ключа RSA" и держится в секрете. |
def src.Rsa.encrypt | ( | text, | ||
publicKey, | ||||
blockSize = 128 | ||||
) |
Функция шифрования.
Переводим строку text в список блоков. Каддый элемент списка перегоняем в long(), шифруем и добавляем в список зашифрованных блоков
text | тексткоторый хотим зашифровать | |
publicKey | двойка (кортеж) чисел (e, n) публикуется в качестве "открытого ключа RSA" | |
blockSize | размер блока шифрования |
def src.Rsa.encrypt1 | ( | message, | ||
publicKey | ||||
) |
Функция шифрования (1 блока).
publicKey | двойка (кортеж) чисел (e, n) публикуется в качестве "открытого ключа RSA" |
def src.Rsa.rsaKeys | ( | size = 1024 |
) |
Генерация ключей.
Создает открытый и закрытый ключи возвращает их ввиде словаря
keysDict = {
'block' : size/4 - 1,
'public': publicKey,
'secret' : secretKey
}
size/4 - 1 -- размер текстового блока в символах(!) величина взята не с потолка, а вычисляется это следует из sizeInBits = log2(n), где n = p*q
def src.Rsa.test | ( | inFileName = 'input.txt' , |
||
outFileName = 'code.txt' , |
||||
checkFileName = 'obtained.txt' | ||||
) |
Тестирование системы RSA.
infileName | имя файла который мы хотим зашифровать | |
outfileName | имя файла c шифром | |
checkfileName | имя файла с рассшифровкой |
def src.Rsa.testWithZip | ( | inFileName = 'input.txt' , |
||
outFileName = 'code.txt' , |
||||
checkFileName = 'obtained.txt' | ||||
) |
Тестирование системы RSA (с жатием).
infileName | имя файла который мы хотим зашифровать | |
outfileName | имя файла c шифром | |
checkfileName | имя файла с рассшифровкой |