LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Раскажите...
 Тема: Раскажите о методе шифрования RSA
 
 15.06.2007 19:58:10
All
4316 сообщения
1-ый


Тема: Раскажите о методе шифрования RSA
Можно ли использовать метод шифрования открытым ключем-RSA в Access


P.S. Защита базы данных
Автор: Татьяна от 0:00:00 Источник ...
 15.06.2007 19:58:10
All
4316 сообщения
1-ый


RE: Раскажите о методе шифрования RSA
Метод защиты информации открытым ключом RSA, назван так по начальным буквам фамилий ее изобретателей (Rivest, Shamir and Adleman). Возникает вопрос, а надо ли еще "городить" новый вариант защиты, когда уже есть встроенные системы защиты в Access, такие как, ограничение доступа к объектам базы данных на основе пароля или системного файла system.mdw.
Ответ однозначный - необходимо, т.к. из-за высокой популярности использования Access файлов, все больше специалистов пытаются определить структуру mdb файла (см. AccessRecovery или la_prot.mdb). Cледовательно нет 100% уверенности, что не появится программа, которая прочитает ваши данные. Таким образом, попробуем разобраться в алгоритме RSA, чтобы потом применить его к защите полей вашей базы данных.
В RSA используется для шифрования один ключ, а для расшифровки другой. Первый ключ не является секретным и может быть известен всем, кто работает с базой данных. 
 Очевидные факторы алгоритма : • расшифровать данные с помощью известного ключа невозможно;
• ключ расшифровки не может быть определен из ключа шифрования;
• ключи должны иметь очень большую величину;
 Определим термины, которые встречаются при описании алгоритма: • простое число - это такое, которое может делится только на 1 и на само себя;
 • взаимно простые числа - это числа не имеющие ни одного общего делителя кроме 1;
 • i mod j - деление по модулю;
 • i ^ j - возведение в степень j числа i;
 Описание алгоритма RSA. В скобках дан пример вычислений в цифрах.1. Возьмем два простых числа A и B. [3 и 11]
2. Определим c=A*B [33]
3. Выберем число d [3] взаимно простое с выражением (A-1)*(B-1) [20]
4. Найдем число e [7], чтобы (e*d) mod ((A-1)*(B-1))=1
5. Итак,
e[7] и c[33] - открытый ключ
d[3] и c[33] - секретный ключ
Проверка алгоритма
6. Зашифруем число x[2] по формуле: p=(x^e) mod c [((2^7) mod 33)=29]
7. Расшифруем число p[29] по формуле: x=(p^d) mod c [((29^3) mod 33)=2] Выводы 1. Перед шифрованием надо разбить текст на блоки, а затем каждому из них дать определенное число. В примере выше использован простой случай, т.е. текст разбивается на символы, где число x имеет код 2.
2. Сам процесс зашифровки/расшифровки требует эффектных решений, т.к. если использовать стандартные математические операции для расчета, то уже для простых чисел 23 и 17 может возникнуть переполнение при возведении в степень. Как этого избежать и подобрать простые числа указано в файле: profi_prot1.mdb
3. Для проверки изложенного выше алгоритма используйте следующую программу (действует на малых числах): 
Тестирование Private Sub funTestRSAencryption()Dim A As Long, B As Long, c As Long
Dim d As Long, e As Long, x As Long, p As Long
'1. Возьмем два простых числа A и B.
A = 3
B = 11
Debug.Print "A=" & A, "B=" & B
'2. Определим c = A * B
c = A * B
Debug.Print "C=" & c
'3. Выберем число d взаимно простое с выражением (A-1)*(B-1)
d = 3
Debug.Print "Test1=" & (A - 1) * (B - 1)
'4. Найдем число e, чтобы (e*d) mod ((A-1)*(B-1))=1
e = 7
Debug.Print "Test2=" & (e * d) Mod ((A - 1) * (B - 1))
'5. Выбираем символ x для шифрования
x = 2
Debug.Print "X=" & x
'6. Зашифруем число x по формуле: p=(x^e) mod c
p = x ^ e Mod c
Debug.Print "P=" & p
'7. Расшифруем число p по формуле: x=(p^d) mod c
x = (p ^ d) Mod c
Debug.Print "X=" & x End Sub
P.S. В качестве дополнительного материала, я бы посоветовал прочитать книгу "Защита информации в персональных ЭВМ", Спесивцев, Вегнер, Крутяков, Серегин, Сидоров. Москва "РАДИО и СВЯЗЬ" 1992 год, стр. 39-41. Вот умная выдержка из этой книги
Криптостойкость алгоритма RSA основывается на предположении, что исключительно трудно определить секретный ключ по известному, поскольку для этого необходимо решить задачу о существование делителей целого числа. Данная задача является NP – полной и, как следствие этого факта, не допускает в настоящие время эффектного (полиномиального) решения. Более того, сам вопрос существования эффективных алгоритмов решения NP – полных задач является до настоящего времени открытым. В связи с этим для чисел, состоящих из 200 цифр (а именно такие числа рекомендуются использовать), традиционные методы требуют выполнения огромного числа операций (около 10^23).


P.S. Защита базы данных
Автор: Виктор Конюков от 0:00:00 Источник ...
 15.06.2007 19:58:10
Ирина3
2 сообщения


RE: Раскажите о методе шифрования RSA
Т е кодируется каждый символ в поле? например мне надо зашифровать слово "mama" как мне это сделать? Извините за столь подробные вопросы, пытаюсь "въехать" в криптографию, но чувствую знаний не хватает


P.S. Защита базы данных
Автор: Ирина от 27.10.2003 18:39:28 Источник ...
 15.06.2007 19:58:10
All
4316 сообщения
1-ый


RE: Раскажите о методе шифрования RSA
Каждый символ в слове имеет числовой код, его и надо зашифровывать. Смотрите для справки таблицу символов ASCII или Unicode


P.S. Защита базы данных
Автор: Admin от 0:00:00 Источник ...
 15.06.2007 19:58:10
Ирина3
2 сообщения


RE: Раскажите о методе шифрования RSA
да, это я поняла. я его и пытаюсь зашифровать. Overflow :( Не даеть


P.S. Защита базы данных
Автор: Ирина от 28.10.2003 16:30:18 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Раскажите...
ПоискПоиск  Список форумовСписок форумов  
right