Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 30.10.2014
Сообщений: 82

Работа с шифровкой\дешифровкой данных ( RSA )

30.05.2017, 13:42. Показов 3429. Ответов 4

Студворк — интернет-сервис помощи студентам
Пытаюсь реализовать для своей проги(хранения текстовых документов) цифровую подпись. Пользуюсь RSA, нашел кучу материалов, столкнулся с недопонимаем. Как я понял, мы шифруем строку с помощью приватного ключа, а публичный ключ используем для расшифровки. Как написано, суть в том, чтобы приватный ключ никто кроме меня не знал, а могли расшифровать с помощью первичного ключа.
C#
1
2
3
    RSACryptoServiceProvider crypto_provider = new RSACryptoServiceProvider();
    RSAParameters public_key = crypto_provider.ExportParameters(false);
    RSAParameters private_key = crypto_provider.ExportParameters(true);
Вот я получаю публичный и приватный ключ. Но я смотрю их байтовые массивы, они одинаковы. То есть возникает вопрос, если смысл в том, чтобы приватный ключ знал только владелец, а публичный ключ который я раздаю такой же как и приватный, то какой в этом смысл. Мне кажется я все не так понял, поясните пожалуйста.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2017, 13:42
Ответы с готовыми решениями:

Ошибка в работе с RSA при расшифровке данных
вот тут строка зашифровывается нормально public string RSA(string Name) { RSACryptoServiceProvider RsaKey =...

Программа общения между людьми с шифровкой даных
Необходимо создать программу для общения между людьми..Также можно с шифровкой данных...

Как написать шифрование RSA на python без import RSA
Нужнен код без использование RSA библиотеки. Буду блогодарен!

4
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
30.05.2017, 15:35
Цитата Сообщение от Khad515 Посмотреть сообщение
Как я понял, мы шифруем строку с помощью приватного ключа, а публичный ключ используем для расшифровки.
Наоборот. Открытым ключом можно только шифровать. Закрытым и шифровать и дешифровать. Именно поэтому закрытый ключ и нужно держать в секрете.

Цитата Сообщение от Khad515 Посмотреть сообщение
Вот я получаю публичный и приватный ключ. Но я смотрю их байтовые массивы, они одинаковы. То есть возникает вопрос, если смысл в том, чтобы приватный ключ знал только владелец, а публичный ключ который я раздаю такой же как и приватный, то какой в этом смысл.
Ключи в алгоритме RSA образуют пару связанную определенными закономерностями. И то часть инфорации которую мы видим в RSAParemeters совпадает у них как раз и демонстрирует эту связь, но не это не значит что они одинаковые и обладают одинаковыми возможностями. Как уже было сказано выше - открытый используется для шифрования, закрытый для дешифрования. Как владельцу пары ключей тебе необходимо чтобы только ты мог расшифровать данные. Отсюда необходимость держать закрытый ключ в секрете.
1
1 / 1 / 0
Регистрация: 30.10.2014
Сообщений: 82
31.05.2017, 16:41  [ТС]
Просто я к чему? Выходит, что если они равны, что показывает эту зависимость. Я дам публичный ключ кому то, левый пользователь будет знать мой приватный ключ, выходит? Ну то есть, я зашифровал данные и отдал человеку текст, каким он ключом должен воспользоваться, чтобы дешифровать и получить тот текст?
Я просто думал, что шифрую приватным ключем, отдаю публичный какому то человеку которому отправляю текст, другой человек дешифрует и получает мой текст. Чет я походу неправильно понял как это работает.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
31.05.2017, 17:09
Лучший ответ Сообщение было отмечено Khad515 как решение

Решение

Цитата Сообщение от Khad515 Посмотреть сообщение
Я дам публичный ключ кому то, левый пользователь будет знать мой приватный ключ, выходит?
Нет. Зная открытый ключ нельзя получить закрытый.

Цитата Сообщение от Khad515 Посмотреть сообщение
Ну то есть, я зашифровал данные и отдал человеку текст, каким он ключом должен воспользоваться, чтобы дешифровать и получить тот текст?
Закрытым.

Цитата Сообщение от Khad515 Посмотреть сообщение
Я просто думал, что шифрую приватным ключем, отдаю публичный какому то человеку которому отправляю текст, другой человек дешифрует и получает мой текст. Чет я походу неправильно понял как это работает.
Это работает в другую сторону. Получатель сообщения должен сообщить тебе свой открытый ключ которым ты зашифруешь сообщение, отправишь его получателю, который с помощью закрытого ключа расшифрует его.
0
1 / 1 / 0
Регистрация: 30.10.2014
Сообщений: 82
01.06.2017, 10:11  [ТС]
Все спасибо, теперь вопрос закрыт. Добра вам
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.06.2017, 10:11
Помогаю со студенческими работами здесь

Алгоритм шифрования данных с открытым ключом RSA
e*mod2346168912=1 помогите найти e чтобы при умножении на некое число, а потом при взятии mod2346168912 остаток был равен 1. С маленькими...

Задача с "шифровкой"
Задача такова: Программа должна считывать четырехзначное целое число, и шифровать его следующим образом: "Заменить каждую цифру...

Ошибка Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at pr4.RSA.main(RSA.java:44)
package pr4; import java.math.BigInteger; import java.security.SecureRandom; public class RSA { private final...

Используя функции категории Работа с базой данных в excel 2010, реализовать запрос к базе данных
Используя функции категории Работа с базой данных, реализовать запрос к базе данных: средняя закупочная цена для одного вида мороженого.

Извлечение данных из базы данных и работа с ними
Здравствуйте! я начинающий программист и нужна ваша помощь. мне нужно написать дипломный проект. он заключается в следующем. нужно создать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru