Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];

Вниз

Объясните (если вам не сложно, конечно!) принцип шифрования.   Найти похожие ветки 

 
Феликс   (2002-07-11 19:09) [0]

Дело в том, что есть текст и его надо зашифровать, а затем расшифровать. Ясно, что дело это не простое и прежде чем пытаться, что-то зашифровать нужно знать хотя бы как это происходит теоритически, поэтому если кто объяснит как это происходит буду признателен.


 
AL2002   (2002-07-11 19:32) [1]

Вариантов много, как и программ. В основном (я не кодер) это взять символ А и сделать его равным ОЛЫВЛОАНГШУЛАО. И остальные также. И не забыть как это расшифровывается.
А вообще валом программ, которые это делают.
Наверное, лучшие из них — это те, которые шифруют, используя один ключ, а расшифровывают другим ключём шифрования.
Хотя толком и сам не знаю, как.

Ищи в инете что-нить типа Security, Encript, Encoding. Можешь для верности добавить и Hacking. И даже Reverse Engeneering.
Всё к тому же.

ЗЫ:
Я считаю главным достоинством шифрования две вещи: 1. Не хранить пароль в зашифрованном файле. 2. Не раздувать размер зашифрованного файла.

ЗЗЫ:
взять символ А и сделать его равным ОЛЫВЛОАНГШУЛАО
взять ОЛЫВЛОАНГШУЛАО и сделать его флоыварлфыамячм
взять флоыварлфыамячм и т.д.


 
cyborg   (2002-07-11 19:50) [2]

Самый простой способ это зоXORить


 
Александр   (2002-07-11 20:00) [3]

Как закодировать строку?
Вот программа, демонстрирующая методы кодирования и раскодирования строк. Примечание: Мы не отвечаем за уникальность и секретность алгоритма данной фунции.



--------------------------------------------------------------------------------
{ Начало кода }

program Crypt;


uses WinCRT;

const

C1 = 52845;
C2 = 22719;

function Encrypt(const S: String; Key: Word): String;
var

I: byte;
begin

Result[0] := S[0];
for I := 1 to Length(S) do begin
Result[I] := char(byte(S[I]) xor (Key shr 8));
Key := (byte(Result[I]) + Key) * C1 + C2;
end;
end;

function Decrypt(const S: String; Key: Word): String;
var

I: byte;
begin

Result[0] := S[0];
for I := 1 to Length(S) do begin
Result[I] := char(byte(S[I]) xor (Key shr 8));
Key := (byte(S[I]) + Key) * C1 + C2;
end;
end;

var

S: string;
begin

Write(">");
ReadLn(S);
S := Encrypt(S,12345);
WriteLn(S);
S := Decrypt(S,12345);
WriteLn(S);
end.


 
Сергей Суровцев   (2002-07-11 23:19) [4]

Принцип шифрования заключается в замене
общепринятых символов отображения информации (буквы, знаки), и
их сочетания (слова) на другие символы и знаки, не несущие
при прямом прочтении содержательной информации. Это
преобразование делается по строго определенному для каждого
случая методу, чтобы применение метода, обратного ему
восстанавливало информацию в исходном виде, то есть теоретически
шифрованием можно назвать даже архивацию.



 
kaif   (2002-07-11 23:51) [5]

Замена каждого символа одним и тем же другим символом - так делают дети, когда играют в шпионские игры. Это работает только для очень коротких сообщений. Если нужно зашифровать длинный текст такое шифрование неприменимо, так как по статистике употребления сиволов исходный текст легко восстановить.
Более умное шифрование (так делают взрослые) состоит в циклическом применении какого-то весьма длинного ключа (например, циклически с ASCII-кодом твоего текста сложит методом XOR фразу "Мой дядя самых честных правил"). Чем длиннее эта фраза, тем больше времени нужно на перебор всех возможных ключей, пока появятся признаки исходного текста. Можно использовать для XOR псевдошумовые последовательности очень большой длины, также создаваемые на основе какого- нибудь ключа. Это еще сильнее усложняет взлом. И т. д. Идеал - добиться совершенно белого шума с ключем длиной в миллион миллионов лет перебора.
Однако это только мое мнение.
Может, кто-нибудь что-то умнее придумал...


 
Сергей Суровцев   (2002-07-12 00:41) [6]

kaif © (11.07.02 23:51)
Конечно, это не серьезное шифрование - это принцип.
Хотя даже заменой символов можно добиться хорошего шифрования, если менять один на несколько, а если еще и с неодназначной циклической зависимостью, то вообще хорошо.


 
IlyaA   (2002-07-12 09:18) [7]

Удалено модератором


 
Anatoly Podgoretsky   (2002-07-12 10:03) [8]

Шел бы ты в другую песочницу, нечего тебе играться в детской


 
Delirium   (2002-07-12 11:09) [9]

> kaif
Есть ещё один мощный способ шифрования - матричный, т.е. в качестве ключа используется квадратная или кубическая матрица. Принцип такой - положим есть какой-то алфавит из 20 символов, создаётся квадратная матрица 20x20 и хаотически заполняется символами этого алфавита, в качестве координат, естественно, используются те-же символы - получается нечто вроде:
ABCD
A DCAB
B ABDC
C CDBC
D DACB

Как видно, в матрице символы повторяются - тем самым одну и ту-же букву можно зашифровать множеством разных способов (размер множества зависит от разряда матрицы и кол-ва символов в алфавите). Попробуем зашифровать слово BAD - ищем случайным образом в матрице буквы и выписываем координаты (сначала X, потом Y): DAABCB или BBBDBC или DDCAAA - как видно, получилось множество вариантов, каждый из которых можно расшифровать только имея соответствующую матрицу.


 
Johnmen   (2002-07-12 11:22) [10]

>Delirium © (12.07.02 11:09)

Это просто одна из разновидностей "взрослого", как сказал kaif © (11.07.02 23:51), шифрования. В данном случае ключ (ключевая фраза) - указанная матрица.

Еще одна разновидность - книжный способ (вспомним Штирлица) :)


 
Pete   (2002-07-12 11:29) [11]

А Я делал простым изменением(перемешением) битов в символе,
т.е. менял по два бита

buf:=(buf shr 6) + (buf shl 6) + ((buf and 48) shr 2) + ((buf and 12) shl 2);



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
1-23974
tttt_tttt
2002-07-26 20:58
2002.08.08
Эксперт: кол-во строк в проекте


1-24073
c0pYc@t
2002-07-26 12:40
2002.08.08
Error Code 6


1-24059
Arhangel
2002-07-25 13:32
2002.08.08
Меню


14-24175
Sour
2002-07-11 14:15
2002.08.08
Почтовый ящик


3-23945
AlexSam
2002-07-16 09:46
2002.08.08
Курсоры в IB6





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский