Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |  |  |
Алгоритм шифрования - чего надо-то? 12.09.01 00:52 Число просмотров: 1832
Автор: PUTIN Статус: Незарегистрированный пользователь
|
> > Ты, эта, народ не путай. Это не шифрование совсем, > > и ломается методом "гляжу и вижу" за 10-15 секунд. > > Конечно однобайтовый xor - это не шифрование, спору нет. > Я просто показал приблизительный алгоритм побайтовых > файловых операций. > > P.S. А ты хочешь, чтобы он RC или DES реализовал?
Сенькс конечно, но xor'ом я и сам могу "шифровать". Нужен алгоритм шифрования с закрытым 8 бит лючём. Можно и с открытым.
|
<theory>
|
Алгоритм шифрования 11.09.01 00:13
Автор: PUTIN Статус: Незарегистрированный пользователь
|
Кто даст исходники алгоритма 8 битного шифрования на Pascal Basic C++
или объяснит как написать соотв. прогу.
|
 |
Алгоритм шифрования 11.09.01 02:37
Автор: Mutex Статус: Незарегистрированный пользователь
|
> Кто даст исходники алгоритма 8 битного шифрования на Pascal > Basic C++ > или объяснит как написать соотв. прогу.
В смысле 8 битного, ведь существует много способов такого шифрования.
А вообще, читаешь из файла байты в массив однобайтовых величин. И каждый байт этого массива шифруешь например побитовой операцией xor(исключающее или):
Pascal:
var
i, size : word;
f : file;
mas : array[1..50000] of byte;
begin
assign(f,'имя файла');
reset(f,1);
size:=filesize(f);
blockread(f,mas,size);
close(f);
for i:= 1 to size do
begin
mas[i] = mas[i] xor 157;
end;
rewrite(f,1);
blockwrite(f,mas,size);
close(f);
end.
|
 |  |
Алгоритм шифрования - чего надо-то? 11.09.01 15:18
Автор: igori Статус: Незарегистрированный пользователь
|
> > Кто даст исходники алгоритма 8 битного шифрования на > Pascal Basic C++ или объяснит как написать соотв. прогу.
> И каждый байт этого массива шифруешь например > побитовой операцией xor(исключающее или):
Ты, эта, народ не путай. Это не шифрование совсем,
и ломается методом "гляжу и вижу" за 10-15 секунд.
Вопрос к автору первого сообщения:
что имеется в виду под "8-битным шифрованием"?
Ты поясни, плиз, свои потребности - по ним и получишь :-)
Можешь за консультацией писать на igori@mo.msk.ru
|
 |  |  |
Алгоритм шифрования - чего надо-то? 11.09.01 15:57
Автор: Mutex Статус: Незарегистрированный пользователь
|
> Ты, эта, народ не путай. Это не шифрование совсем, > и ломается методом "гляжу и вижу" за 10-15 секунд.
Конечно однобайтовый xor - это не шифрование, спору нет.
Я просто показал приблизительный алгоритм побайтовых
файловых операций.
P.S. А ты хочешь, чтобы он RC или DES реализовал?
|
 |  |  |  |
Алгоритм шифрования - чего надо-то? 12.09.01 00:52
Автор: PUTIN Статус: Незарегистрированный пользователь
|
> > Ты, эта, народ не путай. Это не шифрование совсем, > > и ломается методом "гляжу и вижу" за 10-15 секунд. > > Конечно однобайтовый xor - это не шифрование, спору нет. > Я просто показал приблизительный алгоритм побайтовых > файловых операций. > > P.S. А ты хочешь, чтобы он RC или DES реализовал?
Сенькс конечно, но xor'ом я и сам могу "шифровать". Нужен алгоритм шифрования с закрытым 8 бит лючём. Можно и с открытым.
|
 |  |  |  |  |
Алгоритм шифрования - чего надо-то? 12.09.01 02:35
Автор: Mutex Статус: Незарегистрированный пользователь
|
> Сенькс конечно, но xor'ом я и сам могу "шифровать". Нужен > алгоритм шифрования с закрытым 8 бит лючём. Можно и с > открытым.
Что значит с 8 бит ключем, 8 бит - это один символ, соответственно,
каждай байт будет шифроваться одинаково. Или ты хочешь алгоритм,
которой будет все время преобразовывать твой ключ. Или строить по нему
сложную систему шифровки?
|
 |  |  |  |  |  |
Ключ 8 бит (как правило) не стоит использовать 12.09.01 17:36
Автор: igori Статус: Незарегистрированный пользователь
|
> Нужен > > алгоритм шифрования с закрытым 8 бит лючём. Можно и с > > открытым.
Сам подумай: ключ 8 бит - может быть всего 256 разных ключей,
можно просто попробовать каждый по очереди - один и подойдет.
И зачем такое шифрование?
Длина ключа делается большой, чтобы нельзя было просто тупо перебирать
все возможные варианты.
Возьми ключ 8 байт (не бит!) - это уже вполне хорошо для домашнего применения. Или больше, по потребности.
Исходные тексты есть в сети в большом количестве - поищи по словам DES, RC5, Blowfish и так далее.
Реализация Blowfish есть на www.counterpane.com/labs
> Что значит с 8 бит ключем, 8 бит - это один символ, > соответственно, > каждай байт будет шифроваться одинаково. Это, батенька, вы опять путаете :-)
Утверждение Ваше справедливо только для "шифра" XOR.
Ежели взять сложные схемы использования (CBC, CFB, etc :)
то можно и достаточно много зашифровать. Но стойкость перед bruteforce...
|
 |  |  |  |  |  |  |
Ключ 8 бит (как правило) не стоит использовать 13.09.01 00:30
Автор: PUTIN Статус: Незарегистрированный пользователь
|
Такой алгоритм нужен посто для примера, а не для пользования. Да и такую защиту вряд ли взломают те, кто будет иметь доступ к шифрованым файлам.
За линк спасибо.
|
 |  |  |  |  |  |  |  |
Ключ 8 бит (как правило) не стоит использовать 14.09.01 22:50
Автор: leo <Леонид Юрьев> Статус: Elderman
|
Именно 8-битного шифрования конечно нет, поэтому можно сделать одно из трех:
1) Сделать что-нибудь в стиле XOR
2) Взять какой-нибудь алгоритм и перевести его в 8-бит
3) Использовать стойкий алгоритм но с ключом в 8-бит.
XOR-вариант тебе уже подсказали.
Для второго и третьего советую RC6, он работает на любом кол-ве бит.
Почитать можешь на http://www.rsalabs.com
Могу дать готовый DCU-unit (Delphi 6), но без исходников.
unit BlockCipherRc6Unit;
{$IFDEF DEBUG}
{$O-,L+,D+}
{$ELSE}
{$O+,L-,D-,C-}
{$ENDIF}
{$Q-}
interface
uses
ly_utils;
type
TRc6DataBlock = Int128;
PRc6DataBlock = ^TRc6DataBlock;
TRc6RawKeys = array[0..43] of Longword;
procedure rc6_encode(const PlainText: TRc6DataBlock; const Keys: TRc6RawKeys; var CipherText: TRc6DataBlock); register;
procedure rc6_decode(const CipherText: TRc6DataBlock; const Keys: TRc6RawKeys; var PlainText: TRc6DataBlock); register;
procedure rc6_key_setup(var Keys: TRc6RawKeys; var UserKeys; UserKeysLength: Integer); overload;
procedure rc6_key_setup(var Keys: TRc6RawKeys; UserKeys: WideString); overload;
implementation
|
|
|