[c Linux] Эмуляция работы скремблера

Тема в разделе "Общие вопросы по С и С++", создана пользователем Rydj, 3 фев 2011.

Статус темы:
Закрыта.
  1. Rydj

    Rydj Гость

    Доброго времени суток. Народ не могли бы мне помочь дописать скремблер задача такая: написать программу эмулирующую работу скремблера, программа должна генерировать поток битов из
    скремблера и использовать его (группируя по 8 бит) для шифрования байтов,
    считанных со стандартного ввода, пока они имеются; зашифрованные данные
    выводятся на стандартный вывод. Собственно со скремблером я вроде разобрался и написал, а вот дальше какой-то ступор.
    Код (C++):
         #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);
    }
    }
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Объясни мне необразованному, что ты подразумеваешь под словом "скремблер" ? Просто какой-то метод шифрования?

    А дальше у тебя не получается получить данные из стандартного потока ввода или что?
     
  3. Rydj

    Rydj Гость

    В задании же написано что должен делать скремблер (написать программу эмулирующую работу скремблера, программа должна генерировать поток битов из
    скремблера и использовать его (группируя по 8 бит) для шифрования байтов), где там написано что скремблер это "какой-то метод шифрования"? На вход скремблера мы подаём разрядность, полином и начальное содержимое регистра, далее он нам генерит поток битов и с помощью потока надо зашифровать байты. ПРоблема заключается в том как с помощью потока зашифровать байты?
     
  4. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    А где у меня написано что это метод шифрования? Ты вопрос от не вопроса отличаешь?

    Каким методом шифровать надо?
     
  5. Rydj

    Rydj Гость

    на счёт метода не знаю, в задании говорится зашифровать с помощью потока больше никаких уточнений нету.
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Ну тогда шифруй ксором. Это самый простой и обратимый способ шифрования. По типу:
    Код (C++):
    a = b ^ с; // с - любая константа от 0 до 255 включительно (при с == 0 шифрования происходить не будет).
     
  7. Rydj

    Rydj Гость

    ок спс, посоветовали на другом форуме вот так:
    Код (C++):
    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);
    }
    }
    Вот так да?
     
  8. dreamer

    dreamer Гость

  9. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    dreamer
    Спасибо конечно что поддержал но...

    Rydj
    ... я что-то недопонимаю.. у тебя с шифрованием не получается или со крамблером!?? Скажи толком что тебе нужно. То что тебе посоветовали на другом форуме я тебе еще раньше посоветовал.
     
  10. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    dreamer, кстати эта статья целиком и полностью описывает весь процесс.
    Rydj, почитай. Что непонятно - спрашивай.
     
  11. Rydj

    Rydj Гость

    Да, всё ясно спс большое=)
     
  12. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Ну и славненько.
     
Загрузка...
Похожие Темы - Linux] Эмуляция работы
  1. [ixTor]
    Ответов:
    2
    Просмотров:
    147
  2. [ixTor]
    Ответов:
    2
    Просмотров:
    135
  3. WhiteWolf3D
    Ответов:
    0
    Просмотров:
    1.925
  4. ilya00
    Ответов:
    13
    Просмотров:
    4.215
Статус темы:
Закрыта.

Поделиться этой страницей