Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C linux] Эмуляция работы скремблера 
:(
    Опции темы
Rydj
Дата 3.2.2011, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 23.1.2011

Репутация: нет
Всего: нет



Доброго времени суток. Народ не могли бы мне помочь дописать скремблер задача такая: написать программу эмулирующую работу скремблера, программа должна генерировать поток битов из
 скремблера и использовать его (группируя по 8 бит) для шифрования байтов,
 считанных со стандартного ввода, пока они имеются; зашифрованные данные
 выводятся на стандартный вывод. Собственно со скремблером я вроде разобрался и написал, а вот дальше какой-то ступор.
Код

#include <stdio.h>

int shift(int *s, int poly, int size)
{
    int result =*s&1;
    int a=0;
    int b=*s&poly;
while (b) {
    a+=b&1;
    b>>=1;
}
    *s>>=1;
    *s|= (a&1)<<(size-1);
    return result;
}

int main()
{
    int s;
        int i;
        int m;
        i = 1;
        s = 742;
        for (i = 1; i < 100; i++)
        {
       m = shift(&s, 742, 10);
       printf("%d\n", m);
        }



Это сообщение отредактировал(а) bsa - 3.2.2011, 16:26
PM MAIL   Вверх
xvr
Дата 3.2.2011, 15:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Код

int shift8(int *s, int poly, int size)
{
  int rv=0;
  int i;
  for(i=0;i<8;++i) rv=(rv<<1)|shift(s,poly,size);
}

int main()
{
    int s;
    int i;
    int m;

    s = 742;
    while((i = getchar()) != EOF)
     {
      m = shift8(&s, 742, 10);
      putchar(m^i);
     }
}

PS. LFSR для генерации гаммы по криптостойкости совершенно не подходит


PM MAIL   Вверх
Rydj
Дата 3.2.2011, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 23.1.2011

Репутация: нет
Всего: нет



спс
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0698 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.