Функции | |
| 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 | имя файла с рассшифровкой |
1.5.5