AstraRegul
Релиз 2024.08.31.00
×

4.4.1.3.3. Алгоритм шифрования паролей

 
В Astra.AStudio используется алгоритм шифрования паролей RSA.
 
RSA — криптографический алгоритм с открытым ключом, основанный на вычислительной сложности задачи факторизации больших целых чисел.
 
Его криптостойкость основывается на сложности разложения на множители больших чисел, а именно - на исключительной трудности задачи определить секретный ключ на основании открытого, так как для этого потребуется решить задачу о существовании делителей целого числа. Наиболее криптостойкие системы используют 1024-битовые и большие числа.
 
Алгоритм включает в себя четыре этапа:
1. Генерация ключей.
2. Передача ключей.
3. Шифрование.
4. Расшифрование.
 
Процесс шифрования и дешифрования в алгоритме RSA основан на использовании модульной арифметики и свойствах простых чисел. Вначале генерируются два простых числа p и q, затем вычисляется их произведение "n = p * q", которое называется модулем. Затем выбирается число "e", которое является взаимно простым с "(p-1)*(q-1)", и вычисляется число "d", обратное к "e" по модулю "(p-1)*(q-1)". Пара (e, n) образует публичный ключ, а пара (d, n) – приватный ключ.
 
Для шифрования сообщения m с помощью публичного ключа (e, n) используется формула c = me mod n, где c – зашифрованное сообщение. Для дешифрования зашифрованного сообщения c с помощью приватного ключа (d, n) используется формула m = cd mod n, где m – исходное сообщение.
 
Алгоритм RSA обладает свойством невозможности обратного вычисления приватного ключа по публичному ключу, что обеспечивает безопасность передачи данных. Он также обладает свойством цифровой подписи, позволяющим проверить подлинность отправителя сообщения.
 

Преимущества алгоритма RSA

 
1. Безопасность: Алгоритм RSA основан на сложности факторизации больших простых чисел, что делает его криптографически надежным. Пока нет эффективного алгоритма для факторизации больших чисел, RSA остается безопасным.
2. Ключи: Алгоритм RSA использует пару ключей – публичный и приватный. Публичный ключ может быть распространен и использован для шифрования сообщений, в то время как приватный ключ остается в тайне у владельца. Это позволяет безопасно обмениваться зашифрованными сообщениями.

Пример шифрования

 
Следующий пример наглядно демонстрирует алгоритм шифрования RSA. Зашифруем и расшифруем сообщение "САВ" по алгоритму RSA.
Выберем "p=3" и "q=11".
Определим "n= 3*11=33".
Найдем "(p-1)*(q-1)=20". Следовательно, "d" будет равно, например, "3".
Выберем число "е" по следующей формуле: "(e*3) mod 20=1". Значит "е" будет равно, например, "7".
Представим шифруемое сообщение как последовательность чисел в диапазоне от 0 до 32. Буква А=1, В=2, С=3.
 
Теперь зашифруем сообщение, используя открытый ключ {7,33}
C1 = (37) mod 33 = 2187 mod 33 = 9;
C2 = (17) mod 33 = 1 mod 33 = 1;
C3 = (27) mod 33 = 128 mod 33 = 29.
 
Теперь расшифруем данные, используя закрытый ключ {3,33}.
M1=(93) mod 33 =729 mod 33 = 3(С);
M2=(13) mod 33 =1 mod 33 = 1(А);
M3=(293) mod 33 = 24389 mod 33 = 2(В);
 

Использование алгоритма шифрования в Astra.AStudio

 
В Astra.AStudio данный алгоритм используется для шифрования паролей для подключения к OPC UA серверу, SNMP агенту и т.п.
 
 
Зашифрованный пароль хранится в файле <название_проекта>.omx.