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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
komarov
0 / 0 / 0
Регистрация: 12.12.2011
Сообщений: 6
#1

Алгоритм шифрования WAKE - C++

07.12.2012, 14:52. Просмотров 800. Ответов 0
Метки нет (Все метки)

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

Вот сайт: http://www.cix.co.uk/~klockstone/wake.htm

Исходник:
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
#include <iostream>
#include <stdio.h>
 
using namespace std;
void cypher (long V[],long n,long k[],long r[],long t[]);
void genkey (long t[], long k[]);
 
int main()
{
    
    long V[7], n, k[4], r[6], t[256];
    int j = 1;
    n = -4;
    for (int i = 1; i<7; i++) 
    r[i] = rand()%10;
    for (int count = 0; count < 4; count ++)
    {
    k[count] = rand()%512;
}
    for (int count_t = 0; count_t < 256; count_t ++){
        t[count_t] = rand()%255;
        cout << "t= " << t[count_t] << "\n";
        }
    
    V[0] = 1;
    V[1] = 3;
    V[2] = 5;
    V[3] = 7;
    V[4] = 21;
    V[5] = 43;
    V[6] = 12;
    V[7] = 17;
    
    genkey (t, k);
    cypher (V,n,k,r,t);
    for(int i = 0; i <=7; i++)
    cout << V[i] << "\t";
    n = -4;
    cout << "\n\n";
    cypher (V,n,k,r,t);
    for(int i = 0; i <=7; i++)
    cout << V[i] << "\t";
    system ("PAUSE");
    
    return 0;
}
 
void cypher (long V[],long n,long k[],long r[],long t[]){
long r1,r2,r3,r4,r5,r6,d,*e,m=0x00ffffff ;
 
r3=k[0] ; r4=k[1] ; r5=k[2] ; r6=k[3] ;
if (n<0) d= -1 ; else d=1 ;
e=V+n ;
while (V-e) {
 r1 = *V ;
 r2 = r1^r6 ;
 *V = r2 ; // Change into r1 for decoding.
 V += d ;
 r3 = r3+r2 ;
 r3 = (r3>>8&m)^t[r3&255] ;
 r4 = r4+r3 ;
 r4 = (r4>>8&m)^t[r4&255] ;
 r5 = r5+r4 ;
 r5 = (r5>>8&m)^t[r5&255] ;
 r6 = r6+r5 ;
 r6 = (r6>>8&m)^t[r6&255] ; }
r[0] =r3 ; r[1]=r4 ; r[2]=r5 ; r[3]=r6 ; }
 
 
void genkey (long t[], long k[]){
long x, z, p ;
static long tt[10]= {
0x726a8f3b,                                 // table
0xe69a3b5c,
0xd3c71fe5,
0xab3c73d2,
0x4d3a8eb3,
0x0396d6e8,
0x3d4c2f7a,
0x9ee27cf3, } ;
for (p=0 ; p<4 ; p++) t[p]=k[p] ;          // copy k
for (p=4 ; p<256 ; p++) {
  x=t[p-4]+t[p-1] ;                        // fill t
  t[p]=x>>3 ^ tt[x&7] ; }
 
for (p=0 ; p<23 ;
 p++) t[p]+=t[p+89] ;           // mix first entries
x=t[33] ; z=t[59] | 0x01000001 ;
z=z&0xff7fffff ;
for (p=0 ; p<256 ; p++) {       //change top byte to
  x=(x&0xff7fffff)+z ;          // a permutation etc
  t[p]=t[p] & 0x00ffffff ^ x ; }
 
t[256]=t[0] ; x&=255 ;
for (p=0 ; p<256 ; p++) {     // further change perm.
  t[p]=t[x=(t[p^x]^x)&255] ;  // and other digits
  t[x]=t[p+1] ;  }     }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2012, 14:52     Алгоритм шифрования WAKE
Посмотрите здесь:

Алгоритм шифрования по ГОСТу - C++
Вот уже второй день мучаюсь с этой программой. Хотел реализовать шифрование по госту методом простой вставки. Проблема в том, что все...

алгоритм шифрования MISTY1 - C++
Здравствуйте, у кого есть исходник misty1 желательно рабочий - поделитесь пожалуйста, просто в интернете нигде найти не могу. спасибо

Алгоритм шифрования XTEA - C++
При построении решения, ошибок не выдает. Все работает. Вопрос вот в чем: при шифровании даже одной буквы, шифр текст выводится длиной 64...

Алгоритм шифрования Anubis - C++
Приветствую! Заранее прошу прощения за нубскую просьбу: нужно применить готовые функции. Нашел чужой код, не могу в нём разобраться....

Алгоритм шифрования ГОСТ 28147-89 - C++
Всем привет, реализую алгоритм данный алгоритм шифрования, хотелось бы прояснить пару моментов. Не совсем понимаю, как считывать файлы:...

Алгоритм шифрования из exe файла - C++
Hola amigos! :) На C++ к слову я мало что понимаю и столкнулся с некой необходимостью получить алгоритм шифрования обычного CD-ключа из...

Алгоритм симметричного шифрования TwoFish - C++
При реализации алгоритма возникли сложности. Сначала работа шла живо и весело, запрограммировал расширение ключа, шифрование... Но когда...

Реализовать алгоритм XOR-шифрования - C++
Реализовать алгоритм XOR-шифрования одного символа. Рассмотреть беззнаковое целое как четыре упакованных символа (байта). Задать можно ...

Алгоритм шифрования RC4 не совсем корректно работает - C++
Всем привет! Знаю что тема избитая, но всё таки хочется понять проблему и решить. Алгоритм разобрал и написал. Спасибо википедии. ...

Реализовать алгоритм xor-шифрования с использованием модуля algorithm - C++
как можно с помощью функций модуля algorithm реализовать простой алгоритм xor-шифрования? просто в классе есть много переменных которые...

Алгоритм шифрования и дешифорвания строковых данных методом XOR с ключом. - C++
Помогите хоть один написать. Алгоритм шифрования и дешифорвания строковых данных методом XOR с ключом.

шифрования - C++
Помогите мне с этим кодом, не работает должным образом... Он должен шифровать текст в текстовом файле encode.txt, а затем он должен...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru