|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.09.2012, 14:47 | #1 |
Регистрация: 16.05.2011
Сообщений: 4
|
Шифрование
Преподаватель поставил следующую задачу:
Есть открытый текст. и некая группа из n участников(n задается вручную). Каждому участнику присваивается свой ключ. Как сделать так, чтобы любой из участников мог своим ключом этот текст зашифровать, а любой другой своим ключом расшифровать. При условии, что все ключи различны! |
27.09.2012, 15:05 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
RSA и иже с ними... или любой другой алгоритм с асимметричными ключами.
Ref: http://en.wikipedia.org/wiki/Public-key_cryptography |
27.09.2012, 15:23 | #3 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
для ассиметричного шифрования нужно знание чужого публичного ключа
а в задании (достаточно бредовом, кстати), текст шифруется своим приватным ключем
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
27.09.2012, 15:43 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
насколько я понимаю, электронная подпись как раз этот функционал и предоставляет?
добавлено а, может быть, я и ошибаюсь... ведь, чтобы проверить цифровую подпись нужна пара к закрытому ключу - открытый ключ того, кто подписывал (зашифровывал своим закрытым ключом). А по условиям задачи, расшировывать должны своим ключом. Последний раз редактировалось Serge_Bliznykov; 27.09.2012 в 15:51. |
27.09.2012, 15:53 | #5 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
электронная подпись просто гарантирует то, что файл подписан тем, кто обладает секретной половиной публичного ключа, с помощью которого эту подпись можно проверить. Т.е. зная публичный ключ участника А, мы можем убедиться, что некий файл подписал именно он/она (ну или кто-то, кто знает секретную половину публичного ключа А).
в исходном задании ничего не говорится об обмене ключами, наоборот подчеркивается, что ключи используются свои на обоих сторонах
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
27.09.2012, 16:09 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
27.09.2012, 16:17 | #7 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Если не углубляться сильно в крипты, то можно так. Пусть у всех ключей будет общее свойство. Например, ключи
18 27 36 Общее у них то, что сумма цифр = 9. Шифруем, любым известным способом, хоть через xor ключом 9. Можно усложнить, например, ключи 1815 2724 3633 Тут общее то, что сумма первых двух цифр = 9, а последних двух - 6 |
27.09.2012, 20:56 | #8 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
eoln, это первый вариант, который и мне шёл в голову, но он настолько легко взламывается, что даже не стал его упоминать. Достаточно украсть один ключ, чтобы пришлось выпускать новые n ключей.
Лучше тогда уже так: каждый из n ключей — это просто пароль на вход в удалённую базу данных (ну или сайт, не суть). Используя этот ключ можно выполнить две операции: 1) опубликовать новый текст. На выходе получаем уникальный номер текста, который можем отправить другим участникам, чтобы они могли его прочесть (используя свой ключ, естественно). Фактические этот номер -- это и есть зашифрованный текст. 2) прочитать чужой текст, зная его уникальный номер. тут если и украдут один ключ, его можно заблокировать, не трогая остальные.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифрование | Runner | Помощь студентам | 11 | 17.06.2010 22:17 |
Шифрование | risc | Общие вопросы Delphi | 1 | 25.02.2010 21:48 |
Шифрование | Stanislav | Общие вопросы Delphi | 2 | 15.11.2007 21:56 |