Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14

Etyuhibosecyu Cryptosystems 1925 Pre-Pre-Alpha 95

11.12.2019, 15:45. Показов 2758. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господин mozgotron, эта тема специально для вас!
Вероятнее всего, это последняя версия данной программы. Свой алгоритм асимметричного шифрования я пытался, но не смог придумать, поэтому решил воспользоваться готовым - McEliece. Уже сейчас я работаю над своим новым изобретением - приватным чатом, в котором как RealIDEA, так и ES1 пойдут в дело. И, надеюсь, тогда кое-кто перестанет утверждать, что программа никому не нужна. Вот что изменилось в этой версии:
- Лишние настройки скрыты от посторонних глаз, теперь "крутить непонятную хрень" для того, кто не знает, стало намного сложнее. Надеюсь, если пользователь понимает, что он не разберется в настройках, то он не будет открывать их.
- Ключ теперь генерируется автоматически, но возможность вставить его вручную осталась. Надеюсь, больше никаких "квестов" нет?
- При открытии программы протоключ теперь загружается из файла, расположенного в папке "Документы", а если файла нет - генерируется временный. Внимание, протоключ, сгенерированный при запуске программы при отсутствии файла, является ненадежным! Впрочем, через некоторое время (на моем компьютере 8-9 секунд), если программа работает, он автоматически заменяется надежным и сохраняется в файл. Через минуту после окончания генерации протоключа начинается генерация нового.
- Теперь заставить программу зависнуть стало намного сложнее, все возможные процессы распараллелены и снабжены полосами загрузки - текущей и статусом, которые явным способом подписаны.
- Во время хэширования тетрационная и рекурсивная функции теперь выполняются одновременно.
- Теперь вместо пустой части экрана в явном виде отображается картинка с надписью, что эта функция находится в разработке. Впрочем, эта надпись неактуальна, так как программа больше не разрабатывается.
Почему-то в прошлой версии ни один пользователь не написал ни слова про хэширование. Прошу оценить не только симметричное шифрование, но и хэширование!
Вложения
Тип файла: rar Etyuhibosecyu Cryptosystems 1925 Pre-Pre-Alpha 95.rar (426.0 Кб, 22 просмотров)
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.12.2019, 15:45
Ответы с готовыми решениями:

Вставка тега <pre></pre> в файлы директории
Здравствуйте, форумчане! Не подскажете как можно средствами php вставить тег &lt;pre&gt;&lt;/pre&gt; во все текстовые файлы в директории...

Pre-alpha Season Unreal Tournament
Качаю последнюю версию, которая уже в разработке, потому что 3 для меня не актуальна - накувыркался с ботами с тройки достаточно, в онлайне...

Вывести ответ сервера в <pre></pre>
Добрый день! Подскажите, пожалуйста, как мне в примере ниже сделать так, чтобы значение data выводилось не с помощью alert, а выводилось в...

32
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
12.12.2019, 20:08  [ТС]
Студворк — интернет-сервис помощи студентам
К программе больше нет претензий?
0
107 / 65 / 0
Регистрация: 20.08.2013
Сообщений: 321
12.12.2019, 20:23
Претензии? Ну мне как бы всё равно. Главный вопрос как я понял останется без ответа. Зачем это всё? Какой то шифрованый чат? Даже если он и будет, и даже если он будет иметь хоть какой то юзабельный вид, кто и как его будет использовать? Уже есть туча мессенджеров.
1
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
12.12.2019, 21:28
Ваш алгоритм не пригоден для хэширования. Причина банальна, предлагаю найти ее самостоятельно:
C#
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
77
78
public byte[] Encrypt(byte[] bytes, BigInt[] initialization_vector, BigInt[] keys, out int block_count, bool change_pb = true)
{
    List<byte> list = bytes.ToList();
    int num = list.Count % SUBBLOCK_LENGTH;
    while (list.Count % SUBBLOCK_LENGTH != SUBBLOCK_LENGTH - 2)
    {
        list.Add((byte)(random.Next(65536) % 256));
    }
    int num2 = random.Next(65536) / SUBBLOCK_LENGTH * SUBBLOCK_LENGTH + num;
    int num3 = (num2 >= 65536) ? (num2 - SUBBLOCK_LENGTH) : num2;
    list.Add((byte)(num3 / 256));
    list.Add((byte)(num3 % 256));
    List<BigInt> list2 = new List<BigInt>(keys);
    if (change_pb)
    {
        status = 0;
        status_maximum = 816;
    }
    for (int i = 16; i < 832; i++)
    {
        list2.Add(Add(Mul(list2[i - 16], BigInt.Power(9, 9)), BigInt.Power(25, 25)));
        if (change_pb)
        {
            status++;
        }
    }
    BigInt[] array = new BigInt[8];
    Array.Copy(initialization_vector, array, 8);
    if (change_pb)
    {
        status = 0;
        status_maximum = 40 * list.Count / SUBBLOCK_LENGTH;
        current += 10;
    }
    for (int j = 0; j < 2; j++)
    {
        List<byte> list3 = Form1.WorkUpBitsList(initialization_vector.SelectMany((BigInt x) => Form1.ToBitsList((x + BASE).ToByteArray().ToList()).Where((byte y, int index) => index < SUBBLOCK_LENGTH / 8 * 8 || index >= (SUBBLOCK_LENGTH / 8 * 2 + 1) * 8 - SUBBLOCK_LENGTH)).ToList());
        for (int k = 0; k < list.Count; k += SUBBLOCK_LENGTH)
        {
            for (int l = 0; l < 16; l++)
            {
                array = Round(array, list2.GetRange((j * 32 + l) * 13, 13).ToArray());
            }
            List<byte> list4 = Form1.WorkUpBitsList(array.SelectMany((BigInt x) => Form1.ToBitsList((x + BASE).ToByteArray().ToList()).Where((byte y, int index) => index < SUBBLOCK_LENGTH / 8 * 8 || index >= (SUBBLOCK_LENGTH / 8 * 2 + 1) * 8 - SUBBLOCK_LENGTH)).ToList());
            for (int m = 0; m < SUBBLOCK_LENGTH; m++)
            {
                list[k + m] = (byte)(list[k + m] ^ list4[m] ^ list3[m]);
            }
            if (change_pb)
            {
                status += 10;
            }
            BigInt[] array2 = new BigInt[8];
            List<byte> list5 = Form1.ToBitsList(list.GetRange(k, SUBBLOCK_LENGTH).ToList());
            for (int n = 0; n < 8; n++)
            {
                array2[n] = new BigInt(Form1.WorkUpBitsList(list5.GetRange(n * SUBBLOCK_LENGTH, SUBBLOCK_LENGTH)).ToArray());
            }
            for (int num4 = 0; num4 < 16; num4++)
            {
                array2 = Round(array2, list2.GetRange((j * 32 + 16 + num4) * 13, 13).ToArray());
            }
            List<byte> list6 = Form1.WorkUpBitsList(array2.SelectMany((BigInt x) => Form1.ToBitsList((x + BASE).ToByteArray().ToList()).Where((byte y, int index) => index < SUBBLOCK_LENGTH / 8 * 8 || index >= (SUBBLOCK_LENGTH / 8 * 2 + 1) * 8 - SUBBLOCK_LENGTH)).ToList());
            for (int num5 = 0; num5 < SUBBLOCK_LENGTH; num5++)
            {
                list[k + num5] = list6[num5];
                list3[num5] = list[k + num5];
            }
            if (change_pb)
            {
                status += 10;
            }
        }
        list.Reverse();
    }
    block_count = list.Count / SUBBLOCK_LENGTH;
    return list.ToArray();
}
Для тех кому лень разбирать эту кашу (т.е. для всех) - заглянем в конструктор класса содержащего столь могучий метод:
C#
1
2
3
4
5
6
7
public Symmetrical(int subblock_length)
{
    SUBBLOCK_LENGTH = 64;
    random = new Random();
    base..ctor();
    SUBBLOCK_LENGTH = subblock_length;
}
У ты моя прелесть, только "истинный гений" криптографии додумается использовать Random

Вот еще сочный метод:
C#
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
private BigInt[] Round(BigInt[] m, BigInt[] k)
{
    BigInt[] array = new BigInt[8];
    BigInt[] array2 = new BigInt[8];
    BigInt[] array3 = new BigInt[8];
    BigInt[] array4 = new BigInt[8];
    BigInt[] array5 = new BigInt[8];
    array[0] = Mul(m[0], k[0]);
    array[1] = Xor(m[1], k[1]);
    array[2] = Add(m[2], k[2]);
    array[3] = Xor(m[3], k[3]);
    array[4] = Mul(m[4], k[4]);
    array[5] = Add(m[5], k[5]);
    array[6] = Mul(m[6], k[6]);
    array[7] = Xor(m[7], k[7]);
    array2[0] = Add(array[0], MulInv(array[1]));
    array2[1] = Mul(array[1], k[8]);
    array2[2] = Xor(array[2], array2[1]);
    array2[3] = Mul(array[3], array2[2]);
    array2[7] = Add(array[7], XorInv(array[6]));
    array2[6] = Xor(array[6], k[10]);
    array2[5] = Add(array[4], array2[6]);
    array2[4] = Xor(MulInv(array[5]), array2[5]);
    array3[2] = Add(XorInv(array2[1]), k[11]);
    array3[3] = Xor(array2[3], k[9]);
    array3[4] = Mul(array2[4], k[9]);
    array3[5] = Add(array2[6], k[12]);
    array3[0] = Xor(MulInv(array2[0]), array3[2]);
    array3[1] = Mul(array2[2], array2[5]);
    array3[6] = Mul(AddInv(array2[2]), array2[7]);
    array3[7] = Mul(XorInv(array2[7]), array3[5]);
    array4[0] = Mul(array3[0], XorInv(array3[2]));
    array4[1] = Add(array3[1], XorInv(array3[4]));
    array4[2] = Mul(AddInv(array3[0]), array4[1]);
    array4[3] = Add(array3[3], array4[2]);
    array4[7] = Xor(array3[7], MulInv(array3[5]));
    array4[6] = Add(array3[6], MulInv(array3[3]));
    array4[5] = Xor(AddInv(array3[7]), array4[6]);
    array4[4] = Add(XorInv(array3[4]), array4[5]);
    array5[0] = array4[0];
    array5[1] = array4[2];
    array5[2] = array4[1];
    array5[3] = array4[3];
    array5[4] = array4[4];
    array5[5] = array4[6];
    array5[6] = array4[5];
    array5[7] = array4[7];
    return array5;
}
Как говорится - зато старательный.

Ну и напоследок, сама "Великая функция"(С):
C#
1
2
3
4
5
6
7
8
9
10
public static BigComplex GeneralFunctionPlus1(BigComplex a, BigComplex b, BigComplex x)
{
    BigComplex bigComplex = CyclicMultiply(a, x);
    BigReal.Floor(BigReal.CyclicRotateRight2(bigComplex.re, 4095), out BigReal frac);
    BigReal bigReal = BigReal.CyclicRotateLeft(frac, 4095);
    BigComplex bigComplex2 = CyclicMultiply(b, x);
    BigReal.Floor(BigReal.CyclicRotateRight2(bigComplex2.re, 4095), out BigReal frac2);
    BigReal bigReal2 = BigReal.CyclicRotateLeft(frac2, 4095);
    return CyclicMultiply(CyclicMultiply(CyclicAdd(x, BigReal.One), CyclicIExp(CyclicAdd(new BigComplex(bigReal, bigComplex.im), BigReal.One))), CyclicIExp(CyclicIExp(CyclicAdd(new BigComplex(bigReal2, bigComplex2.im), BigReal.One))));
}
BigComplex и BigReal кривые обертки над BigInteger - отсюда и дичайшие тормоза. Причем в массивах типа BigInteger зачастую лежат обычные 16 битные числа
3
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
12.12.2019, 21:53
Цитата Сообщение от freeba Посмотреть сообщение
Как говорится - зато старательный.
Заставь Etyuhibosecyu Богу молиться, он и лоб расшибёт?
1
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,731
13.12.2019, 05:19
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
К программе больше нет претензий?
Вы игнорируете претензии. Зачем спрашивать тогда? Надёжность не доказана. Для чего создаётся и чем лучше аналогов - вы сказать не можете. Проверил - действительно хеширует черте как долго. Интереса ради вообще очистил окошко с текстом... всё равно хеш считает. Хеш пустоты тоже, оказывается, есть. Зашифровал фразу "Исходный текст22111" несколько раз нажав "Шифровать", скопировал шифрограмму, закрыл приложение, открыл заново, вставил шифрограмму, нажал "Расшифровать", получил пустую строку. Офигенный "шифроватор".

Etyuhibosecyu, может вы вернётесь к написанию кровоглазых игрушек? Разработка чего-то более-менее серьёзного вообще не для вас. Вы ни обосновать разработку не можете, ни реализовать так, чтобы хотя бы выглядело как настоящее.
1
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,731
13.12.2019, 05:28
А в следующий раз я получил ошибку о том, что шифрограмма не является зашифрованным текстом. А последний раз оно мне вообще такое выдало:


Это фраза "Исходный текст" по версии ПО мистера Его Правительские Звания. Кем бы и за что бы эти звания не выдавались, точно не за умение разрабатывать ПО.

Etyuhibosecyu, может у вас что-то другое хорошо получается? Фигурки, там, из дерева вырезать. Или рисовать.
0
 Аватар для mozgotron
64 / 73 / 1
Регистрация: 23.05.2015
Сообщений: 360
Записей в блоге: 52
13.12.2019, 21:55
freeba, вы что ли декомпилировали exe и dll господина Этюгибосекю. Сильно.
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
14.12.2019, 01:40
mozgotron, так ILSpy без проблем его сборки открывает, любой может насладится сими трудами
1
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
14.12.2019, 09:36
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Будет несколько ступеней с очень большой разницей в цене. С точными числами еще не определился.
Лол, вы это поделие еще и продавать собираетесь? Даже не знаю, как это прокомментировать
Как там с доказательством криптостойкости, кстати?

Добавлено через 4 минуты
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
а криптостойкость, мне кажется, только увеличилась.
Пардон, не заметил. Ну раз вам кажется, то тут, конечно, все уже побежали кошельки расчехлять и счета в банках опустошать
0
14.12.2019, 09:51

Не по теме:

Катафалк, он все свои поделки собирался продавать. Но спрос на навоз оказался не высок.

0
18.02.2020, 08:10

Не по теме:

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Может быть, пора уже забыть про "DCASFT"? Он уже давно не разрабатывается. И, скорее всего, уже никогда не будет разрабатываться. Прошу больше не упоминать об этом проекте!
Прошу больше не упоминать об этом проекте!
Во время разработки DCASFT у тебя что-то случилось, о чем ты не любишь вспоминать? Психотравма после изнасилования?

0
18.02.2020, 08:15

Не по теме:

Kastaneda, C++ стрелой пронзил мышцу ягодичную. Так появился язык "C белиберда"

0
18.02.2020, 09:32

Не по теме:

Croessmah, или C# сильно туго входил. Там же сахара полно, прилепал к стенкам)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2020, 09:32

Hash Function Efficiency v0.1 pre-Alpha (May 11th, 2017)
Вот код, для наглядности (cyberforum.ru - не сохраняет оригинал кода! может не компилироваться) комментарии не удалял... #include...

BusyBox 0.61 pre
Товарищи форумчаны, столкнулся сей проблемой на BusyBox, у меня ADSL модем ZTE W300, мне необходимо выяснить каким образом можно настроить...

Тэг PRE
Всем привет, есть довольно таки специфический вопрос, хоть я и знаю, что к тэгу pre мало какие стили можно применить, но все - таки может...

перенос и <pre>
столкнулся с такой проблемой - если текст выводить с помощью &lt;pre&gt; то если например текст вводился через &lt;textarea&gt; без энтэров то...

Отличие <pre> от <p>
Скажите, в чём отличие между этими тегами?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru