powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / нужен скрипт авторизации
12 сообщений из 37, страница 2 из 2
нужен скрипт авторизации
    #34991960
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сейчас пишу на Си++ симетричный шифровальщик с использованием суммы ключа и зависимостью каждого слежуйщего символа от прошлого + сдвигом от той же суммы таким образом подобрать можно будет только весь ключь да и то проблема в том что тот же 14ти значный пароль на обычном компьюторе можно до поснения а если применить по блоковое перешифрование с использованием разных тчастей ключа на основе суммы ключа то установление правильности части с неполным знанием ключа вообщзе исключаеться и того на подбор текста зашифрованного 14ти значным паролем даже супер компьютору пойдет не минута а значит это вполне можно использовать для нормального шифрования

и еще есть вариант использовать для преобразование актив икс компонент тогда взлом буд осложнен еще больше...
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34991979
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и к томуже представте что будет если шифровать данные несколько(в зависимости от того же ключа) раз тогда с подбором всё будет еще хуже но конечно лучший способ защиты это или длинный пароль или долгая процедура шифровки а еще лучше и то и то



Сори что всё время постю по 2 раза
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34992974
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyМне наплевать на принцип. На компьютерах работают реализации, а не принципы. В HTML - конкретные реализации под HTML. Обсуждать сферических коней в вакууме далее я не намерен.
Тот код, который вы привели не является реализацией одноразового блокнота. Это то же самое, как если бы вас попросили написать программу деления числа на два, а вы реализовали это в виде alert("Hello, world!"). Поэтому можете и дальше наплевать на принципы.

В силу того, что вы все время ссылаетесь на вашу реализацию "одноразового блокнота", считаю дискуссию бессмысленной. Готов продолжить дискуссию после того, как вы узнаете что такое брутфорс и с чем его едят, а также, что такое одноразовый блокнот.

Может вы хоть Alex_soldier-а послушаете...

Aicg , зачем изобретать велосипед, который к тому же, наверняка окажется крайне слабым шифром, если есть множество проверенных временем алгоритмов - например, тот же ГОСТ 28147-89? Когда допишите вашу программу, не могли бы выслать мне код? :) Хочется ради интереса посмотреть...
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34993279
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I_WorkТот код, который вы привели не является реализацией одноразового блокнота.Приведите правильную.
I_WorkМожет вы хоть Alex_soldier-а послушаете...Пожалуй...
Из его объяснений я понял, что теоретически для текста "хххх" можно подобрать такую пару ключей такой же длины (из словаря в 8 символов), что при расшифровке можно получить как "хлеб" так и "пиво".
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34993451
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyПриведите правильную.
Уберите из вашей реализации фрагмент
Код: plaintext
Mod L2
, и будем вам реализация одноразового блокнота. При этом длина пароля должна быть не меньше длины шифруемого сообщения (больше тоже смысла нет - часть просто "пропадет").

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

Именно!

Видите ли, когда вы делаете брутфорс, вы так или иначе заранее определяете какие-то критерии правильности пароля. Например - "должен получится читабельный русский текст" или "должна получится запускаемая программа" и т.д. и т.п. Когда вы дешифруете шифртекст очередным паролем, вы проверяете результат на совпадение с вашими критериями: если подходит - пароль правильный, если нет - пароль неправильный. При этом может получиться то, что под ваши критерии попадет не один пароль, а несколько. В этом случае вы должны будете задать более строгий критерий, чтобы отсеить лишние пароли. Если этого сделать невозможно, то вы не узнаете истину, точнее - у вас будет проблема выбора среди множества "подходящих" вариантов.

Вернемся к моему примеру: необходимо дешифровать сообщение fhjrp . При этом известно, что это - английское слово, использовался алфавит, состоящий из маленьких английских букв (всего 26 символов). Таким образом, критерий на правильность пароля - "должно получиться английское слово". После того, как вы переберете все возможные пароли длины 5, состоящий из символов указанного алфавита, у вас получится довольно внушительный список "подходящих" расшифровок - это все английские слова длины 5. Больше вы ничего узнать не сможете в принципе. любой из этих слов могло бы быть исходным сообщением.

В случае, если вам каким-лио образом стала известна часть ключа, вы однозначно сможете восстановить только соответствующую часть сообщения. Все остальное опять-таки будет неопределено. Пример привел Alex_soldier.

P.S. В найденном вами коде реализован так называемый шифр Виженера, который при относительно коротком ключе и длинном шифртексте взламывается крайне быстро, зачастую, даже вручну (если ресь идет об обычном тексте).
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995326
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну рас уж речь пошла про алгоритмы то хочу заметить несколько особенностей для пожалуй любого шифра

-Пароль длиннее 14ти знаков используется не так часто
-Если алгоритм шифрования хорош то при пароле длиннее текста лишняя часть не пропадает а тоже используется
-Критерии правильности при большом количестве кода вполне эффективны так как при дешифровки нескольких килобайт кода зашифрованных даже 32байтным паролем вероятность правильной дешифровки иных чем исходные данные крайне мала
-Основная защита это длина пароля помноженная на время шифрования и время определения правильности дешифровки
-Дополнительной защитой может служить если алгоритм шифрования ранее неизвестен тогда машинная расшифровка фактически невозможна без участия человека хорошо знакомого с принципами (этот вариант к html коду не применим ввиду открытых исходников)

Что до того что бы скинуть мой алгоритм то кину может сегодня ночью может завтра но сразу хочу сказать что в шифровании я делитатнт так что прошу строго не судить (пишу на борландском Си++ так как предпочитаю подумать над тем как лучше зашифровать а не над тем как это всё навоять на джава скрипт)

И в довершении: я не думаю что текст зашифрованный даже моей программой удастся расшифровать не профессионалу в этом деле так как перебор 14ти значного кода из букв и цифр даже на 1ом языке с учетом поиска соответствия по критерию на обычном компьютере может пойти несколько месяцев если не больше
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995516
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот и мой алгоритм шифрования точнее исходный код программы реализующий кодировку и декодирование и демонстрирующий результат

Хочу заметить что там используется грубые для более высокоуровневых языков таких как JS преобразования например преобразование 4х байтного числа в 1но байтное с урезанием не попавших бит

И еще если этот алгоритм покажется через чур грубым или простым то прошу заметить что тема шифрования была поднята для меня 1й раз так как до этого я использовал чужие алгоритмы не вдаваясь в изучение принципов

И наконец хочу предложить попробовать всем желающим подобрать ключ к закодированным данным даже если будет известно их начало а потом я с интересом узнаю сколько на это пойдет времени если надо могу выслать экзешник


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
AnsiString _StrToHex(char *str,int len)
{
        AnsiString s="";
        for(int i= 0 ;i<len;i++)
                s=s + IntToHex((unsigned char)(str[i]), 2 ) + ",";
        return s;
};
int _Sum(unsigned char *s,int len)
{
        int n= 0 ;
        for(int i= 0 ;i<len;i++)
                n+=s[i];
        return n;
};
void Encode(unsigned char *t,int tl,unsigned char *o,int ol,unsigned char *k,int kl)
{
        int s=_Sum(k,kl),n=s,n0,ci= 0 ;
        for(int i= 0 ;i<tl;i++)
        {
                n0=(int)(t[i])+(int)(k[ci])+n+s;
                n=t[i];
                o[i]=n0% 256 ;
                if((++ci)>=kl)
                        ci= 0 ;
        };
};
void Decode(unsigned char *t,int tl,unsigned char *o,int ol,unsigned char *k,int kl)
{
        int s=_Sum(k,kl),n=s,n0,ci= 0 ;
        for(int i= 0 ;i<tl;i++)
        {

                o[i]=t[i]-(int)k[ci]-n-s;
                n0=(BYTE)((o[i])+(int)(k[ci])+n+s);
                n=o[i];
                if((++ci)>=kl)
                        ci= 0 ;
        };
};
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        int al=Edit1->Text.Length(),
                bl=RichEdit1->Text.Length(),
                cl=RichEdit1->Text.Length();
        char *a=new char[al+ 1 ];
        char *b=new char[bl+ 1 ];
        char *c=new char[cl+ 1 ];
        StrCopy(a,Edit1->Text.c_str());
        StrCopy(b,RichEdit1->Text.c_str());
        Encode(b,bl,c,cl,a,al);
        c[cl]= 0 ;
        RichEdit3->Text=_StrToHex(c,cl);
        RichEdit2->Text=c;
        ZeroMemory(b,bl);
        Decode(c,cl,b,bl,a,al);
        RichEdit4->Text=b;
        delete a,b,c;
}
//---------------------------------------------------------------------------

...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995526
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да еще хоть эта ветка и не посвящена Си++ но если кто увидит в моем коде что-то не рациональное или неправильное то прошу сказать так как я изучал Си++ исклучительно по его же справке и только недавно у меня появилась MSDN

Еще раз сори модераторам что постю подряд но редактировать сообщения тут нельзя а сразу все сказать не всегда выходит:)
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995631
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aicg-Пароль длиннее 14ти знаков используется не так частоСогласен на все 100%.

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

Aicg
-Критерии правильности при большом количестве кода вполне эффективны так как при дешифровки нескольких килобайт кода зашифрованных даже 32байтным паролем вероятность правильной дешифровки иных чем исходные данные крайне малаЭто не относится к одноразовым блокнотам . К большинству блочных шифров это действительно подходит: например, критерий - "читабельный русский текст". Тогда, подобрав множество подходящих ключей для первого блока, мы проверяем их для остальных блоков: если и остальные блоки тоже читабельны, то ключ с большой вероятностью можно считать правильным. Если же ключ на первом блоке дает нормальный текст, а на последующих - ерудну, то ключ можно отбросить... Здесь все упирается в то, что фактически ключ используется несколько раз.


Aicg-Основная защита это длина пароля помноженная на время шифрования и время определения правильности дешифровкиНет. Основная защита - сам алгоритм. То, что вы сказали, относится только к полному перебору. Абсолютное большинство алгоритмов для восстановления ключа не нуждаются в полном переборе всех возможных ключей.


Aicg-Дополнительной защитой может служить если алгоритм шифрования ранее неизвестен тогда машинная расшифровка фактически невозможна без участия человека хорошо знакомого с принципами (этот вариант к html коду не применим ввиду открытых исходников)Это само собой разумеется. Однако, можно утверждать, что алгоритм в конце-концов станет известен злоумышленникам за конечное время (обратная инженерия, подсматривание и т.п.). На скрытость самого алгоритма полагаться нельзя.
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995742
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не хотел сказать конкретно про одноразовый блокнот а лишь отметить хорошие и плохие стороны заметные с моей точки зрения

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

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

еще хочу добавить что в коде который я скинул я забыл удалить 1ну строчку в блоке декодирования:)

Код: plaintext
1.
 n0=(BYTE)((o[i])+(int)(k[ci])+n+s);
 
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995752
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот алгоритм одноразового блокнота написанный мною на основе того что было описано в этой теме и из него следует 1 но очень большей недостаток который уже не раз повторялся а если точнее то он не может служить для шифрования большого количества данных так как пароль длинною даже килобайт это уже абсурд а всучи если текст длиннее пароля в несколько раз то этот алгоритм вообще становиться не эффективным
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
void EncodeOneTimeNotepad(unsigned char *t,int tl,unsigned char *o,int ol,unsigned char *k,int kl)
{
        int ci= 0 ;
        for(int i= 0 ;i<tl;i++)
        {
                o[i]=(t[i]+k[i])% 256 ;
                if((++ci)>=kl)
                        ci= 0 ;
        };
};
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34997029
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже давным-давно ушли далеко в сторону от первоначального вопроса.

Уважаемый Aicg, в последних двух ваших сообщениях вы были во многом не правы - например, ваш код - это опять-таки не реализация одноразового блокнота!

Поскольку тема все же довольно интересная, предлагаю обсудить ее не в форуме, а по электронной почте. В дальнейшем, если найдем что-нибудь интересное, напрямую касающееся первоначальной темы, выложим это сюда.

С уважением,
Евгений
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / нужен скрипт авторизации
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]