Главная
            
           » 
          
            
            Информационные системы
            
           »
                        
                            
                            Информационная безопасность и защита информации
                            
                           »
                        
                            
                            Криптографическая система Ривеста-Шамира-Алдемана (RSA).
                            
                          Криптографическая система Ривеста-Шамира-Алдемана (RSA).
В криптографической системе с открытым ключом каждый участник располагает как открытым ключом (public key), так и секретным ключом (secret key). Каждый ключ - это часть информации. В криптографической системе RSA каждый ключ состоит из пары целых чисел. Каждый участник создаёт свой открытый и секретный ключ самостоятельно. Секретный ключ каждый из них держит в секрете, а открытые ключи можно сообщать кому угодно или даже публиковать их. Открытый и секретный ключи каждого участника обмена сообщениями образуют «согласованную пару» в том смысле, что они являются взаимно обратными. 
Алгоритм RSA состоит из следующих пунктов:   
Выбрать простые числа p и q заданного размера (например, 512 битов каждое). 
В криптографии под случайным простым числом понимается простое число, содержащее в двоичной записи заданное количество битов k, на алгоритм генерации которого накладываются определенные ограничения.   
Вычислить n = p * q    
Вычисляется значение функции Эйлера от числа n:  m = (p - 1) * (q - 1)   
Выбрать число d взаимно простое с m  
Два целых числа называются взаимно простыми, если они не имеют никаких общих делителей, кроме ±1. Примеры: 14 и 25 взаимно просты, а 15 и 25 не взаимно просты (у них имеется общий делитель 5).   
Выбрать число e так, чтобы e * d = 1 (mod m) Числа e и d являются ключами. Шифруемые данные необходимо разбить на блоки - числа от 0 до n - 1. 
Шифрование и дешифровка данных производятся следующим образом: Шифрование: P(M) = Me mod n Дешифровка: S(C) = Cd mod n 
Следует также отметить, что ключи e и d равноправны, т.е. сообщение можно шифровать как ключом e, так и ключом d, при этом расшифровка должна быть произведена с помощью другого ключа. Схема шифрования и дешифрования RSA представлена на рис.4. Предположим, сторона B хочет послать стороне А сообщение М. Сообщением являются целые числа от 0 до n-1.  Размер ключа в алгоритме RSA связан с размером модуля n. 
Два числа p  и q,  произведением  которых  является  модуль,  должны  иметь  приблизительно одинаковую  длину,  поскольку  в  этом  случае  найти  сомножители  (факторы) сложнее, чем в случае, когда длина чисел значительно  различается.  Например, если предполагается использовать 768-битный модуль, то каждое  число  должно иметь длину приблизительно 384 бита. Обратите внимание, что если  два  числа чрезвычайно близки  друг  к  другу  или  их  разность  близка  к  некоторому предопределенному значению, то возникает потенциальная угроза  безопасности, однако  такая  вероятность  –  близость  двух  случайно  выбранных  чисел  – незначительна. Оптимальный  размер  модуля  определяется  требованиями   безопасности: модуль большего размера обеспечивает большую безопасность,  но  и  замедляет работу  алгоритма RSA. Длина модуля выбирается в  первую  очередь  на  основе значимости защищаемых данных и необходимой стойкости защищенных данных и  во вторую очередь – на основе оценки возможных угроз. На 2009 год система шифрования на основе RSA считается надёжной, начиная с размера n = p * q  в 1024 бита. В Более подробную информацию о данном алгоритме шифрования и конкретные примеры можно получить из справки, а также из источников, указанных в литературе.
 
                
                
                
            
                            Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.