алгоритм замещения - PullRequest
       30

алгоритм замещения

2 голосов
/ 25 февраля 2011

Как выполнить алгоритм шифрования замещения в ASP.NET с использованием кода C #?

Пожалуйста, предоставьте пример синтаксиса кода ....

Ответы [ 2 ]

2 голосов
/ 25 февраля 2011
StringBuilder encryptedBuilder = new Stringbuilder();

for(int i = 0; i < key.Length; i++) {
    char e = getCharFor(key[i]); // this does substitution - implement this
    encryptedBuilder.Append(e);
}

string encryptedString = encryptedBuilder.ToString();
0 голосов
/ 13 марта 2011

На самом деле ROT13 - это вариант Цезаря , идея которого состоит в том, чтобы сдвинуть букву обычного текста на N позиций далее в алфавите. Ни ROT13, ни шифр Цезаря не являются безопасными. Почему?

По существу, можно определить степень шифрования как объем работы, которую необходимо выполнить для взлома данного зашифрованного текста. Итак, что мы должны сделать, чтобы сломать их? :

  • ROT13 -> мы просто сдвигаем назад каждый символ на 13 позиций в алфавите. (Нет безопасности вообще).
  • Цезарь ->
    for N=1 to 26 do:
    shift each character by N positions back in the alphabet.
    If a lot of common English words (the, and, that,...) - encryption is cracked.
    Таким образом, в случае Цезаря все еще 26 итераций для взлома зашифрованного текста настолько малы, что мы можем смело утверждать, что шифр Цезаря также не имеет защиты. (Но, конечно, это немного лучше, чем ROT13).

Если вы хотите немного более полезный шифр замещения, используйте Vigenere cipher . В отличие от шифров ROT13 / Caesar - шифр Vigenere не использует FIXED-алфавит в операции шифрования. (Он использует несколько алфавитов, переключая их в нужном порядке). Именно поэтому Vigenere более безопасен, чем ROT13 / Caesar. Тем не менее Vigenere обладает слабым шифрованием и сравним с XOR шифрованием . Почему Vigenere слаб? В основном потому, что он уязвим для частотного анализа (конечно, сначала нужно угадать / найти длину ключа). Вот он Vigenere C # код (вместе с Цезарь / ROT13).

удачи!

...