0 / 0 / 0
Регистрация: 02.10.2018
Сообщений: 1
1

Реализация потокового шифра, процесс шифрование

15.06.2019, 22:09. Показов 653. Ответов 0

Всем привет, мне необходимо реализовать потоковый шифр на базе прореживаемого генератора (2 рслос, если выход 1 рслос ==1, то выход генератора = рслос2, иначе биты сбрасываются и идет новый такт генератора), но загвоздка у меня уже в самом процессе шифрования. На вход у меня идет строка string, на каждый бит которой мне необходимо наложить бит ключа. Моя задумка вот в чем: создается массив размером (mes.length()*8, т.к. стринговское число == 8 бит) в каждой ячейке которого хранится 0 или 1, и побитово через цикл накладывается, но что то ниче не работает. Кто может помочь с кодом или посоветовать другую реализацию?

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
int ShrinkingGen::LFSR1()
{
    lfsr1 = ((((lfsr1 >> 7)
            ^ (lfsr1 >> 5)
            ^ (lfsr1 >> 3)
            ^ (lfsr1 >> 2)
            ^ (lfsr1 >> 1)
            ^ (lfsr1)) 
            & 0x00000001)
            << 31)
            | (lfsr1 >> 1);
    return lfsr1 & 0x00000001;
}
 
int ShrinkingGen::LFSR2()
{
    lfsr2 = ((((lfsr2 >> 7)
        ^ (lfsr2 >> 6)
        ^ (lfsr2 >> 5)
        ^ (lfsr2 >> 2)
        ^ (lfsr2 >> 1)
        ^ (lfsr2)) 
        & 0x00000001)
        << 33) 
        | (lfsr2 >> 1);
    return lfsr2 & 0x00000001;
}
 
int ShrinkingGen::output(int i)
{
    while (1)
    {
        if (LFSR1())
        {
            key[i] = LFSR2();
            return key[i];
        }
        else
        {
            LFSR1();
            LFSR2();
        }
    }
}
 
void Sender::encrypt()
{
    ciph = mes;
    for (size_t i = 0; i != n/8; i++)
        for(size_t k = 0; k != n; k++)
            for (size_t j = 0; j != 8; j++)
            {
                (ciph[i] >> j) = (mes[i] >> j) ^ (output(k) >> 0);
            }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2019, 22:09
Ответы с готовыми решениями:

Шифрование шифра Виженера
Здравствуйте! При шифровании сообщения на русском языке шифром Виженера у меня возникла ошибка....

Шифрование/дешифрование шифра Трисемуса с любым ключевым словом
Помогите,пожалуйста написать программу по шифровке и дешифровке шифра Трисемус с любым ключевым...

Шифрование подстановкой и раскрытие шифра методом частотного анализа
Выполнитиь частотный анализ открытого текста_1 (не менее 100 тыс. знаков). Выполнить шифрование...

Реализация шифра Виженера
Написать программу для шифра Виженера на С++

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2019, 22:09
Помогаю со студенческими работами здесь

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

Реализация шифра перестановки для заданного ключа
Напишите пожалуйста код на С++ реализации шифра перестановки для заданного ключа.

Шифрование/дешифрование текстов по принципу шифра Плейфера
Помогите, пожалуйста, написать программу для шифрования/дешифрования текстов по принципу шифра...

Шифрование текстов с использованием афинного шифра на ассемблере
Есть код на с++. Нужно переделать так, чтобы были ассемблеровские вставки. Как можно переделать,...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru