Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Применение Шифрования по методу RSA в Языке С++

28K
26 марта 2008 года
tendik
32 / / 18.03.2008
Все готова, основной программа работает - только по отдельной буквой шифрую, беру АСКИИ и шифрую, все 10 ом системе.

Вопрос: Как взять БЛОК, на 10 ом системе работать или 2 ном, если 2 ом системе то какие функции есть в С++?
28K
31 марта 2008 года
tendik
32 / / 18.03.2008
Я всё ещё жду ответа, как взять сразу блочный текст и шифровать оптом (букву)?
9.7K
01 апреля 2008 года
oltzowwa
105 / / 15.02.2007
класс bitset позволяет работать с битами.
28K
03 апреля 2008 года
tendik
32 / / 18.03.2008
А ето поможеть взять блок?, мне надо скоро закончить дипломку, спешу..
240
03 апреля 2008 года
aks
2.5K / / 14.07.2006
Не вижу проблемы. Что вы понимаете под блоком? А еще не вижу смысла шифровать по одному символу в RSA. Мало того - это неправильно. )
28K
07 апреля 2008 года
tendik
32 / / 18.03.2008
Цитата: aks
Не вижу проблемы. Что вы понимаете под блоком? А еще не вижу смысла шифровать по одному символу в RSA. Мало того - это неправильно. )




Ya ponimaiu pod blokom tekst, neskolko bukv, a to chto ni ponimaiu sprashuivaiu,
shifrovat po odnomu simvolu ---- eto proba.
Vam vopros:Kak vzyat ni po donomu simvoly, a neskolko bukvu srazu i prisvaivat odnoi peremennoi?

28K
07 апреля 2008 года
tendik
32 / / 18.03.2008
Цитата: oltzowwa
класс bitset позволяет работать с битами.




vy pomojete ponimat klass bitset, privodit odin primer bitseta?

9.7K
13 апреля 2008 года
oltzowwa
105 / / 15.02.2007
Про bitset хорошо написано в MSDN. Там много примеров.
Код:
...
bitset<24> textbits(0);//текст с битами
bitset<8> symbol(0);/*на переменную symbol выделяется 8 бит, с которыми можно поотдельности работать. (0) - значает все биты нулвые(конструктор)*/

char text[4]="asd";//блок, который в биты неоходимо перевести

symbol=text[0];// sуmbol присвоится первый символ в двоичном виде

//заполняем textbits
int i=0,j=0,k=0;

for (i=0;i<24;i++)
{
   
   textbits=symbol[j];
   if(j==7)
      {
      k++;
      j=0;
      if (k<4) symbol=text[k];// sуmbol присвоится символ в двоичном виде
      }
  else j++;
}
...


Буду благодарна за замечания по стилистике написанного кусочка. Очень хочу научиться грамотно писать.
28K
14 апреля 2008 года
tendik
32 / / 18.03.2008
Vot spasibo...da tam mnogo primerov, no kogda komiliruiu sprashivaet tipa, bilblioteka dlya bitseta ni napisano, a tak so vremenem ponimaiu,ved ya nachinaiushiy student, spasibo eshe raz!
28K
16 апреля 2008 года
tendik
32 / / 18.03.2008
Цитата: oltzowwa
Про bitset хорошо написано в MSDN. Там много примеров.
Код:
...
bitset<24> textbits(0);//текст с битами
bitset<8> symbol(0);/*на переменную symbol выделяется 8 бит, с которыми можно поотдельности работать. (0) - значает все биты нулвые(конструктор)*/

char text[4]="asd";//блок, который в биты неоходимо перевести

symbol=text[0];// sуmbol присвоится первый символ в двоичном виде

//заполняем textbits
int i=0,j=0,k=0;

for (i=0;i<24;i++)
{
   
   textbits=symbol[j];
   if(j==7)
      {
      k++;
      j=0;
      if (k<4) symbol=text[k];// sуmbol присвоится символ в двоичном виде
      }
  else j++;
}
...


Буду благодарна за замечания по стилистике написанного кусочка. Очень хочу научиться грамотно писать.




А я так сделал:

...
bitset<24> textbits(0); bitset<8> symbol(0);

char text[4]="asd"; int i, k;

for (i=0;i<24;i++) {

k = i%8;

if(k==0) symbol = text[i/8];

textbits[ i ] = symbol[ k ];
}
...
Так простее, понятнее. Потом попробовал всякие примеры по битовые (присваивание, сравнение), но ещё вопрос: как выполнить арифметические операции(сложение, вычитание), есть готовые функции или мне придется написать код по разрядом, циклами?

9.7K
06 мая 2008 года
Reskator
26 / / 07.02.2007
Что за бред вообще пишут??? Какой bitset? Это же вообще не корректно, в случаем использования блочного шира (ГОСТ - 89, DES, Blowfish, RC4 и т.д.) - там блоки по 32 бита (к примеру). И вообще - процессор у тебя 32 или 64 разрядный, значит и работаешь с типами данных, размером с регистр. Это выгодно. И по человечески.

Если нужна реализация блочного шифрования не через задний проход, а нормально, то найди книгу Брюса Шнайера - "Прикладная криптография". Там все написано, что ты должен знать, и исходники на чистом С есть.
Если диплом, то почитай "Михаэл Вельшенбах. Криптография на Си и С++ в действии". Там описано - как шифрование реализуется на уровне хорошиего программиста. Плюс описание алгоритмов, и ссылки на классику в виде 3-го тома Дональда Кнута "Искусство программирования".
9.7K
15 мая 2008 года
oltzowwa
105 / / 15.02.2007
Цитата: Reskator
Что за бред вообще пишут??? Какой bitset? Это же вообще не корректно, в случаем использования блочного шира (ГОСТ - 89, DES, Blowfish, RC4 и т.д.) - там блоки по 32 бита (к примеру). И вообще - процессор у тебя 32 или 64 разрядный, значит и работаешь с типами данных, размером с регистр. Это выгодно. И по человечески.


Приведенный кусочек кода - всего лишь пример, как можно символьную строку перевести в биты. bitset удобен тем, что набор его функций позволяет оперировать целыми блоками битовой информации, любой длины. Никакого намёка на реализацию какого-либо алгоритма.

Книга Брюса Шнайера - "Прикладная криптография" мне тоже очень понравилась)), только с Михаэл Вельшенбах. "Криптография на Си и С++ в действии" не встречалась.:confused:

Только по-моему не актуально самому реализовывать алгоритмы - которые уже Бог знает сколько времени реализованы за нас.(я про криптоалгоритмы) скорее всего можно допустить какую-то "дыру" для атак. Уже есть целые библиотеки, протестированные и безопасные (относительно, конечно). Например, cryptoapi.h (библотека Ws). С её помощью можно реализовывать любые (во всяком случае большинство) крптоалгоритмы.
Вообще мне интересно, кто как обеспечивает безопасность своих систем??? Кто-нибудь поделиться??? или я сильно наивная?:o

28K
16 мая 2008 года
tendik
32 / / 18.03.2008
Вобщем спасибо всем вам за дискуссия, Михаэл Вельшенбах. "Криптография на Си и С++ в действии" у меня на руках уже пол года, да действительно хорошая книга,новая, я использую не которые алгоритмы, но до конца не успевал прочитать...По битовые проблеммы давно решено благодаря форума. Шас есть другая проблемма, очень простой пример:

#include <iostream>
#include <fstream>
using namespace std;

void main()
{
ofstream fout("put.txt");
ifstream fin("put.txt");

char c;
unsigned char s;

fout<<char(26);
fin>>c;

s = c;

cout<<c<<" = "<<(int)c<<endl;
cout<<s<<" = "<<(int)s<<endl;
}

Смотрите пожалуйста здесь, консольном выходить -52 и 204; как вы видели я хочу увидет число 26! подскажите, как я могу получить 26?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог