Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:iotelea:safeme [2023/05/29 17:39]
oana.cocoara [Download]
pm:prj2023:iotelea:safeme [2023/05/29 21:24] (current)
oana.cocoara [Descriere generală]
Line 14: Line 14:
  
 <note tip> <note tip>
-Un sistem care cripteaza/​decripteaza ​datele de pe un stick de memorie USB. +Un sistem care cripteaza/​decripteaza ​mesajele care vin pe interfata serialaAlgoritmul ​de criptare este un One Time Pad unde expansiunea ​cheii se face prin repetarea eiAccesul ​la chei se face prin intermediul unor utilizatori presetatiale caror drepturi sunt accesate folosind PIN-ul prorpiu ​de 4 cifre.
-Proiectul isi propune criptatea sau decriptatea datelor ​de pe un stick USB. +
- +
-Pe ecran apare un prompt care la inceput cre un pin, daca acesta este corect va putea fi folosit la derivarea ​cheii privateMai apoi va afisat cele doua optiuni de criptare decriptare si logout, ​la final se va afisa statusul operatiei in acest moment stickul se poate extrageiar un text de finalizare se va afisa pana la apasarea oricarui buton.  +
- +
-  * Pentru criptarea lor se vor citi datele de pe stick, acestea se vor cripta si scrie inapoi. +
-  * Pentru decriptatea lor se vor citi datele de pe stick, programul le va decripta cu cheia lui privata. +
-  * La logout se sterge cheia din memorie.+
 </​note>​ </​note>​
  
Line 46: Line 39:
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware)+**Mod de functionare:** 
-  * mediu de dezvoltare (if any) (e.gAVR StudioCodeVisionAVR) +  * Meniu initial ​de login: tot ce se poate face sa se aleaga un user pentru logare: se cere PIN-ul de 4 cifre, care se introduce de la tastaturaLa login efectuat cu succes, globala active_user se schimba la indexul userului respectivVa fi folosita la alegerea cheii de criptare si la verificarea posibilitatii decriptarii unui cyphertext. 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib+ 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +**Meniul de utilizare efectiva de catre un user: optiuni pentru criptaredecriptare si logout.**  
-  * (etapa 3) surse şi funcţii implementate+ 
 +  * Criptare: asteapta input de la interfata serialaAcesta se cripteaza (aproapeOTP (expansiunea cheii este doar repetarea ei) folosind cheia cu indexul active_user si rezultatul este intors la seriala (primul caracter identifica cheia folosita). 
 + 
 +  * Decriptare: se verifica daca userul curent poate decripta cyphertextul dat (in functie de primul caracter, despre ​care am mai zis): userii normali pot folosi doar propria cheie, admin le poate folosi pe toate. 
 + 
 +  * Logout: se seteaza active_user la -1 si se revine in meniul initial. ​
 </​note>​ </​note>​
  
Line 87: Line 85:
  
 {{:​pm:​prj2023:​iotelea:​whatsapp_image_2023-05-16_at_16.11.11_1_.jpeg?​600|}} {{:​pm:​prj2023:​iotelea:​whatsapp_image_2023-05-16_at_16.11.11_1_.jpeg?​600|}}
 +
 +      * Exemplu de functionalitate:​ logare cu unul dintre utilizatori,​ dupa care am ales optiunea de criptare, am adaugat textul pe care doream sa il criptez. La final am ales sa sa decriptez textul criptat - am ales optiunea de decriptare din meniul utilizatorului.
 +
 +{{:​pm:​prj2023:​iotelea:​safe_me_ex1.png?​600|}}
 +
 +{{:​pm:​prj2023:​iotelea:​safe_me_decrypt.png?​600|}}
 +
  
 </​note>​ </​note>​
Line 92: Line 97:
 ===== Concluzii ===== ===== Concluzii =====
  
 +<note tip>
 +    * Nu a mers shieldul pt ca cel mai probabil nu e suportat de biblioteci(eu am luat o placa generica si posibil sa existe diferente). Am inlocuit cu scriere si citire de la interfata seriala. Criptarea se face folosind One Time Pad cu chei de 8 octeti. ​
 +
 +    * Primul caracter din cyphertext ajuta la identificarea cheii folosite. Indexarea cheilor incepe de la 0, ceea ce ar duce la a printa nimic criptat cu cheia 0. Solutie: adaug 67 la indexul cheii folosite.
 +
 +    * Problema (oarecum in acelasi registru cu cea anterioara):​ Folosind chei cu caractere uzuale, se poate ivi cazul in care am X xor X, ceea ce da 0, iar printarea va vedea asta ca un end of string. Asadar, am folosit caractere mai putin folosite in chei.
 +
 +    * Alte probleme simple: read nu este o functie blocanta si a trebuit sa fac un loop blocant cu Serial.available().
 +
 +</​note>​
 ===== Download ===== ===== Download =====
 {{:​pm:​prj2023:​iotelea:​safe_me.zip|}} {{:​pm:​prj2023:​iotelea:​safe_me.zip|}}
Line 102: Line 117:
      * Conectarea si testarea componentelor ​ 2023/05/16      * Conectarea si testarea componentelor ​ 2023/05/16
      * Nu a mers USB HostShield-ul si readaptarea proiectului ​ 2023/05/27      * Nu a mers USB HostShield-ul si readaptarea proiectului ​ 2023/05/27
-     * Finalizarea ​codului ​aplicatiei, realizarea ​documentatiei finale si incarcarea lor pe site  2023/​05/​29 +     * Finalizarea ​partii software a aplicatiei ​2023/​05/​28 
-     * Prezentarea proiectului ​ 2023/05/31+     * Realizarea ​documentatiei finale si incarcarea lor pe site 2023/​05/​29 
 +     * Prezentarea proiectului ​ 2023/05/30
 </​note>​ </​note>​
  
pm/prj2023/iotelea/safeme.1685371162.txt.gz · Last modified: 2023/05/29 17:39 by oana.cocoara
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0