encrypt & decrypt weekend project
TRANSCRIPT
-
8/17/2019 Encrypt & Decrypt Weekend Project
1/13
ENCRYPT &
DECRYPT
WEEKEND PROJECTSIRURI DE CARACTERE
By Team AK
Strinu Narcis
-Vaduva Gabriel
-Marcu Vlad
-Dima Cosmin
-Butaru Florin
-
8/17/2019 Encrypt & Decrypt Weekend Project
2/13
A fost odata…(sau n-afost)
Acum mult timp, doua guverne a doua tari
aveau un plan secret pe care trebuiau
sa il trimita intre ele si sa il discute fara ca alte tari
sa afle despre ce este vorba
Au incercat prin diverse metode, dar
tot apareau scurgeri de informatii
!ntr-o "i, o ec#ipa de informaticieni inteligenti $foarte%&
s-au gandit sa code"e cumva te'tul informatiei
incat doar stiind un anumit cod de alterare
sa poti sa descifre"i informatia
Si iata cum au procedat(
S-au gandit sa ia fiecare litera in parte, sa ii ia codul de caracter
sa il altere"e prin operatii matematice cu un master code, sa inlocuiasca
caracterul respectiv din te't si sa salve"e sirul de caractere sub forma criptata
-
8/17/2019 Encrypt & Decrypt Weekend Project
3/13
Sirul de caractere criptat:
Puterea dezlantuita (sau decriptata?)Cum se calculea"a master-code)
Au stabilit ca master-code sa fie calculat ca
produsul dintre $*+&din lungimea sirului de caractere,
daca este par,
sau + din lungimea sirului de caractere, daca nu este
par, si prima aparitie
in sirul de caractere a unei vocale
Apoi, inainte de valoarea numerica a Master-code-ului
se va adauga un numar de cifre selectat de utili"ator
si litera . sau N in functie de comparatia valorii numerice
a master-code-ului cu / 0.o"itiv + Negativ1
2a fiecare cod de caracter se aduna $valoarea absoluta a
mastercode&3$semn mastercode&
si se scade usercode daca semn mastercode a fost po"itiv
sau se aduna usercode
daca semn mastercode a fost negativ
Hmmm…
-
8/17/2019 Encrypt & Decrypt Weekend Project
4/13
Si astfel s-au #otarat si s-au pregatit sa scrie
programul
.rima data au stabilit #eaderele si au declarat
obiectele fisier $fstream& % si apoi au plecat la
bar
Dimineata urmatoare, ma#muri cum erau,
dupa multa cafea si Coca Cola, au declarat
functia principala int main{} si au reali"at
codul pentru citirea din fisier a sirului de
caractere initial, linie cu linie%!ata ce a iesit(
#include#include#includefstream fin("date.txt", ios::in);fstream fout("decripted.txt",ios::out);
int main(){char s[!!!!;char linex[!!;int len;s[!$!;%hile(&fin.eof()){ fin.getline(linex, '); strcat(s, "n");
strcat(s, linex);*
*
-
8/17/2019 Encrypt & Decrypt Weekend Project
5/13
int reallen$strlen(s);int mastercode;len$strlen(s)+;char ocale[$"aeiou-/01";char 2pos$strp3r4(s, ocale);
int ocal5pos$s+pos;
!n continuare, au stabilit po"itia primei vocale in
conte'tul sirului de caractere initial%e#un fel de
po"itie, caci au #otarat ca programul sa devina
putin mai abstract
“Unde-I vocala?! Unde-i vocala?!!”
-
8/17/2019 Encrypt & Decrypt Weekend Project
6/13
4rmatorul pas a fost sa stabileasca prima
parte din master-code
if(reallen67$$!){mastercode$reallen8';
*else{
mastercode$(92reallen)8';*mastercode$mastercode2ocal5pos;
-
8/17/2019 Encrypt & Decrypt Weekend Project
7/13
4n astfel de cod ar avea urmatoarea
forma(
*5N67 sau *5.67
*5 8 user code, selectat de utili"ator
N + . 8 Negativ + .o"itiv
67 8 Master code, calculat in pasul
anterior
Cumva trebuiau sa faca codul de descifrare mai
compact%si totusi sa fie eficient din punct de
vedere al securitatii
Au stabilit ca in loc de semn pentru prima parte dinmastercode, sa puna inainte de codul de securitate
primar sa puna literele N si ., e'act ca in planul
initial
Au mai adaugat la planul initial si un cod de
utili"ator, caci altfel decriptarea ar fi fost prea
simpla si munca lor ar fi fost inutila Acest cod de
utili"ator era adaugat la inceputul master-cod-ului
final, c#iar inainte de caracterul pentru semn 9oateaceste po"itionari sunt folosite doar pentru
utili"area ulterioara a codului ca intreg
int user5code;coutuser5code;
char signx;if(mastercode
{ signx$;mastercode$mastercode2(+);
*else{
signx$;*
char master5final[7!;char usrnr[', mcode[;itoa(user5code, usrnr, !);itoa(mastercode, mcode, !);strcat(master5final, usrnr);int s4$strlen(master5final);master5final[s4$signx;strcat(master5final, mcode);
printf("=astercode: 6sn", master5final);
-
8/17/2019 Encrypt & Decrypt Weekend Project
8/13
Mai trebuiau sa altere"e fiecare
caracter din sir dupa regula aleasa si
salvarea noului sir intr-un fisier te't%
bine bine%si afisarea pe ecranfor(int i$!;i
-
8/17/2019 Encrypt & Decrypt Weekend Project
9/13
Nici o problemaInversam procesul
#include#include#includefstream fin("date.tt"! iosin$fstream fout("decri%ted.tt"! iosout$ int main({
char s&')$char line&*)$+hile(,fin.eof({
fin.getline(line! $strcat(s! "/n"$strcat(s! line$
}int reallen0strlen(s$char code&1)$cout
-
8/17/2019 Encrypt & Decrypt Weekend Project
10/13
Si s-au dus baietii nostrii la guvern sa isi pre"inte creatia
Au lasat apoi proiectul, urmand sa fie contactati daca guvernul va
alege proiectul lor pentru criptarea informatiei
.este "ile% Au primit un mail de la guvern in care scria(
Contactati-ne dupa ce veti decoda acest sir de caractere codat
cu aplicatia voastra Codul de decodare nu vi-l vom da, va
trebui sa il aflati voi
Succes;
9e't(
=6=6hshsh=6drsldr=i9rtmsdshB3B2?@?
=hnCh6Chos=lnChmtl=h6Chos=l---
-
8/17/2019 Encrypt & Decrypt Weekend Project
11/13
Au cautatD.
-au stresatD
-AE TT FA32GTD
G AE AHIAT 2EI
797'
-
8/17/2019 Encrypt & Decrypt Weekend Project
12/13
Fericiti ca au gasit codul, s-au grabit sa decode"e te'tul ca sa poata afla
mesa
-
8/17/2019 Encrypt & Decrypt Weekend Project
13/13
T?J J32