Форум программистов, компьютерный форум CyberForum.ru

Шифрование умножением на бинарные матрицы - C++

Восстановить пароль Регистрация
 
Faust611
2 / 2 / 0
Регистрация: 16.06.2015
Сообщений: 66
01.03.2016, 14:23     Шифрование умножением на бинарные матрицы #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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
//funkcia podscheta dlinni massiva
unsigned int Lenght(const char s[])
{
 int L=0;
 while(s[L++]);
 return (L-1);
}
 
int main()
{
 unsigned int  key[8][8];
 
 //stroka 1
 key[0][0]=1;
 key[0][1]=0;
 key[0][2]=0;
 key[0][3]=0;
 key[0][4]=1;
 key[0][5]=0;
 key[0][6]=0;
 key[0][7]=0;
 //строка 2
 key[1][0]=0;
 key[1][1]=1;
 key[1][2]=1;
 key[1][3]=0;
 key[1][4]=0;
 key[1][5]=0;
 key[1][6]=1;
 key[1][7]=0;
 //stroka 3
 key[3][0]=0;
 key[3][1]=1;
 key[3][2]=1;
 key[3][3]=1;
 key[3][4]=0;
 key[3][5]=1;
 key[3][6]=1;
 key[3][7]=1;
  //stroka 4
 key[0][0]=1;
 key[0][1]=0;
 key[0][2]=1;
 key[0][3]=1;
 key[0][4]=1;
 key[0][5]=1;
 key[0][6]=0;
 key[0][7]=1;
  //stroka 5
 key[0][0]=0;
 key[0][1]=0;
 key[0][2]=0;
 key[0][3]=1;
 key[0][4]=0;
 key[0][5]=1;
 key[0][6]=1;
 key[0][7]=0;
  //stroka 6
 key[0][0]=1;
 key[0][1]=1;
 key[0][2]=0;
 key[0][3]=1;
 key[0][4]=0;
 key[0][5]=0;
 key[0][6]=1;
 key[0][7]=0;
  //stroka 7
 key[0][0]=0;
 key[0][1]=0;
 key[0][2]=0;
 key[0][3]=1;
 key[0][4]=1;
 key[0][5]=0;
 key[0][6]=1;
 key[0][7]=0;
  //stroka 8
 key[0][0]=0;
 key[0][1]=1;
 key[0][2]=1;
 key[0][3]=0;
 key[0][4]=1;
 key[0][5]=0;
 key[0][6]=0;
 key[0][7]=1;
 
 char abc[28]="abcdefghijklmnopqrstuvwxyz";
 
 //kodiruem slovo "studentaa"
 unsigned short word[9];
 
 char text[15]="studentaa";
 
 int w=0;
 
 cout<<""<<endl;
 cout<<"ishodnoe slovo: studentaa"<<endl;
 while(w<=Lenght(text))
 {
  for(int i=0;i<25;i++)
  {
 
   if(text[w]==abc[i])word[w]=i;
  }
 
  w++;
 }
 
 
 unsigned short cript[9]={0};
 
 cout<<"polychenniy shifr v vide chastey razbityh po 3"<<endl<<" "<<endl;
 for(int k=0;k<9;k+=3)
 {
  for(int i=0;i<8;i++)
  {
  cript[i+k]=(key[i][i]*word[0+k]+key[i][i]*word[1+k]+key[i][i]*word[2+k]);
 
  cout<<cript[i+k]<<" ";
  }
  cout<<endl;
 }
 cout<<" polychenniy shifr v vide stroki nomerov i bykv:"<<endl;
 
 for(int i=0;i<9;i++)
 cout<<cript[i]<<"="<<abc[cript[i]]<<endl;
 cout<<endl<<"Pozalysta nazmite ENTER";
 cin.get();
 
 return 0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2016, 14:23     Шифрование умножением на бинарные матрицы
Посмотрите здесь:

C++ Массив: Получить новую матрицу следующим способом: умножением Min каждой строки первой матрицы на Max соответствующего столбца второй
Проблемы с умножением матрицы C++
Получить новую матрицу умножением элементов каждой строки первой матрицы C++
Шифрование XOR не кодирует бинарные данные C++
Пользуясь только умножением, получить C++
C++ Всегда ли после логического сложения можно однозначно определить исходные данные логическим умножением?
C++ Описать функцию Stepen (x, n) от вещественного x и натурального n, вычисляющую (умножением) величину x^n
C++ Зменить возведение в степень умножением

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
elephants
25 / 25 / 6
Регистрация: 30.12.2015
Сообщений: 95
Завершенные тесты: 1
01.03.2016, 14:56     Шифрование умножением на бинарные матрицы #2
У меня все компилируется. Ошибку -то какую выдает? А вот программа должным образом не работает, т.к. вот тут
C++
1
2
for(int i=0;i<9;i++)
 cout<<cript[i]<<"="<<abc[cript[i]]<<endl;
происходит выход за пределы массива.
Faust611
2 / 2 / 0
Регистрация: 16.06.2015
Сообщений: 66
01.03.2016, 16:32  [ТС]     Шифрование умножением на бинарные матрицы #3
вот такую вот :Необработанное исключение по адресу 0x00A9603E в matr.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x0019FB4C. И пытался сделать символ чтобы был в двоичном формате. У меня проблема наверное с тем что не получается у меня привести все в двоичный формат.
Yandex
Объявления
01.03.2016, 16:32     Шифрование умножением на бинарные матрицы
Ответ Создать тему
Опции темы

Текущее время: 12:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru