0 / 0 / 0
Регистрация: 05.03.2016
Сообщений: 4
1

Шифрование с открытым ключом

06.06.2018, 22:48. Показов 5737. Ответов 16

Author24 — интернет-сервис помощи студентам
Заинтересовался недавно шифрованием, слышал что есть так называемые "open source" шифраторы, но что-то не смог найти их код для примера. Дело в том что хочу сам создать через windows forms с использованием c++ простейшую утилиту для шифрования введенного текста. Что-то вроде 2 текст бара, 1 для ввода другое для вывода текста, окно для ввода ключа и кнопки зашифровать и дешифровать. При этом чтобы ключ работал про простейшему принципу, допустим ввожу 5-ти значный ключ (12345) шифрую текст, затем чтобы дешифровать текст требуется ввод того-же ключа (12345), если ключ будет другой то вместо исходного текста будет каша, а само шифрование происходило не перестановкой символов, а в виде хэша. Может кто кинуть пример такого кода.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2018, 22:48
Ответы с готовыми решениями:

Шифрование/дешифрование методом RSA с открытым ключом. С++
Помогите, пожалуйста, написать программу. Задали задание, а я совершенно не понимаю С++, как это...

Криптографический алгоритм с открытым ключом RSA
Нужно зашифровать и расшифровать число с помощью криптографического алгоритма с открытым ключом...

Написать программу, которая шифрует и дешифрует файл алгоритмом с открытым ключом
шифруещая и дешифруещая программа на с++ с открытым ключом

Шифрование файлов открытым ключем
Доброго времени суток. Вообщем необходимо шифровать файлы с данными (которые я же и записываю...

16
Заклинатель змей
700 / 555 / 219
Регистрация: 30.04.2016
Сообщений: 2,591
06.06.2018, 23:21 2
Матиас, например, хэдэр с готовым blowfish. Пример запуска есть в верхней части кода, в комментариях
https://defuse.ca/blowfish.htm
Вложения
Тип файла: zip blowfish.h.zip (12.2 Кб, 46 просмотров)
0
0 / 0 / 0
Регистрация: 05.03.2016
Сообщений: 4
06.06.2018, 23:53  [ТС] 3
DobroAlex, спасибо, код полистал, довольно сложным показался, попробую разобраться, но хотелось-бы попроще, если такое есть.
0
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
07.06.2018, 00:01 4
Лучше уже возьмите CSP какую-нибудь, тестовые сертификаты, используйте CryptoAPI, CAPICOM, CapiLite и т.д. и попробуйте решить какую-нибудь более-менее реальную задачу. Например, авторизация на какой-нибудь торговой площадке с помощью ЭЦП.

Добавлено через 1 минуту
Матиас, куда уж проще, чем этот header?
0
0 / 0 / 0
Регистрация: 05.03.2016
Сообщений: 4
07.06.2018, 17:34  [ТС] 5
DobroAlex, что-то я так и не смог запустить этот код
0
Заклинатель змей
700 / 555 / 219
Регистрация: 30.04.2016
Сообщений: 2,591
07.06.2018, 21:54 6
Матиас, так покажите, что написали
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
07.06.2018, 22:21 7
Цитата Сообщение от Матиас Посмотреть сообщение
Заинтересовался недавно шифрованием
Область интересная, и, судя по всему, перспективная. Но, чтобы использовать шифрование не бездумно, нужно познакомиться с основными принципами и терминами хотя бы на уровне вики.
Цитата Сообщение от Матиас Посмотреть сообщение
Шифрование с открытым ключем
Термин "Открытый ключ" относится к ассиметричному шифрованию и означает совсем не то, о чем вы пишете.
Цитата Сообщение от Матиас Посмотреть сообщение
а само шифрование происходило не перестановкой символов, а в виде хэша
"Хэширование" в отношении к шифрованию - процедура необратимая. Информацию, преобразованную хэш-функцией вы дешифровать, увы, не сможете.

Я к тому, что матчасть сначала неплохо бы освоить, хоть на уровне 2x2.
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
07.06.2018, 22:27 8
gng,
Цитата Сообщение от gng Посмотреть сообщение
Информацию, преобразованную хэш-функцией вы дешифровать, увы, не сможете.
а как же радужные таблицы?)

Цитата Сообщение от gng Посмотреть сообщение
Термин "Открытый ключ" отновится к ассиметричному шифрованию
Скорее всего имелось ввиду симметричное шифрование с использованием одного ключа для (де)кодирования
Цитата Сообщение от Матиас Посмотреть сообщение
При этом чтобы ключ работал про простейшему принципу, допустим ввожу 5-ти значный ключ (12345) шифрую текст, затем чтобы дешифровать текст требуется ввод того-же ключа (12345)
Однако, Вы правы, автор сам не знает, что хочет:
Цитата Сообщение от Матиас Посмотреть сообщение
а само шифрование происходило не перестановкой символов, а в виде хэша.
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
07.06.2018, 22:36 9
Цитата Сообщение от SuperKir Посмотреть сообщение
а как же радужные таблицы?)
Это не единственный способ взлома паролей по хэшу. Можно и тупым перебором. Мощностей бы хватило... Принципиально то, что первоначальную информацию все равно не получите гарантировано. Необратимость функции в данном случае означает, что к одному хэшу приводят разные начальные данные.
Цитата Сообщение от SuperKir Посмотреть сообщение
Скорее всего имелось ввиду симметричное шифрование с использованием одного ключа для (де)кодирования
Т.е. кто угодно может декодировать?
Но я сказал к тому что "открытый ключ" - устоявшийся термин.
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
07.06.2018, 22:54 10
gng, Я понял о чем речь шла, исходил из того, что автор писал в посте
Цитата Сообщение от gng Посмотреть сообщение
Т.е. кто угодно может декодировать?
Зная ключ, которым кодировали - да, это ж симметричные, тут нет закрытых/открытых.
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
07.06.2018, 22:59 11
Цитата Сообщение от SuperKir Посмотреть сообщение
Я понял о чем речь шла, исходил из того, что автор писал в посте
А я два раза прочитал его пост, но так и не понял, чего он хочет. :-)))
0
0 / 0 / 0
Регистрация: 05.03.2016
Сообщений: 4
09.06.2018, 10:57  [ТС] 12
Вы правы, решил я более детально изучить основы, и действительно тот бред, который я описывал в теме, можно было сократить до Симметричного шифрования с одним ключом. Может кто кинуть пример такого кода?
0
zd
0 / 0 / 0
Регистрация: 05.10.2020
Сообщений: 3
14.12.2022, 16:55 13
Здравствуйте.

Я изучаю С++.

Пока делаю элементарные ошибки.

Нашел программу (Шифрование с открытым ключом)
https://gist.github.com/Sergiy... 198302b850
Автор Sergii Osadchyi

Пытаюсь в коде программы C++ RSA, заменить фрагмент:

do
{
std::cout << "Enter a Prime number p :" << std::endl;
std::cin >> p;
flag = isPrime( p );

if ( flag == false )
{
std::cout << "\nWRONG INPUT (This number is not Prime. A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself)\n" << std::endl;
}
} while ( flag == false );


do
{
std::cout << "Enter a Prime number q :" << std::endl;
std::cin >> q;
flag = isPrime( q );

if ( flag == false )
{
std::cout << "\nWRONG INPUT (This number is not Prime. A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself)\n" << std::endl;
}
} while ( flag == false);


На вполне конкретные, значения:

p=53;
q=199;

И в итоге при попытке закодировать (Hello) получаю сообщение без первого знака:

Enter Message to be encryped:
Hello

The message is: ello

THE ENCRYPTED MESSAGE IS:


THE DECRYPTED MESSAGE IS:
ello

Если вводить эти числа в терменале, в программе без изменений, то все хорошо. В чем дело? Что я не вижу?

Заранее благодарен.
0
zd
0 / 0 / 0
Регистрация: 05.10.2020
Сообщений: 3
14.12.2022, 23:27 14
Разобрался.
В тексте программы присутствуют такие строки:
// there is a newline character left in the input stream, so we use ignore()
std::cin.ignore();
std::getline(std::cin, msg);

Так вот, как только закоментировал std::cin.ignore(); все заработало как надо.
Правда не очень понял, как одно с другим связано.
0
7785 / 6553 / 2983
Регистрация: 14.04.2014
Сообщений: 28,621
15.12.2022, 00:47 15
Если ты убрал ввод, то как ignore() мог остаться?
1
zd
0 / 0 / 0
Регистрация: 05.10.2020
Сообщений: 3
15.12.2022, 08:49 16
Действительно! Но компилятор ошибки не обнаружил.
0
661 / 662 / 106
Регистрация: 29.05.2015
Сообщений: 3,964
15.12.2022, 14:38 17
Самый простой способ зашифровать файл - это проделать логическую операцию hor (^) между байтами файла и байтами генератора случайных чисел в диапазоне 0 - 255. В качестве ключа использовать число, иниалицизирующее ГСЧ.
0
15.12.2022, 14:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2022, 14:38
Помогаю со студенческими работами здесь

Шифрование таблицей с ключом
Добрый день форумчане. Стоит задача сделать прогу для шифрования таблицей с ключом. У меня...

Шифрование данных ПРИВАТНЫМ ключом
Да-да, я знаю что это не шифрование, а создание ЭЦП. Также знаю, что в crypto api эта функция...

Шифрование методом перестановки с заданным ключом текста любой длины
здравствуйте прошу помочь с исправлением кода #include &lt;iostream&gt; #include &lt;string&gt; #include...

Шифрование методом перестановки символов открытого текста в соответствии с некоторым правилом (ключом)
Здравствуйте,хочу обратиться за помощью в написании консольной программы(C ++ Visual studio),буду...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru