Differences

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

Link to this comparison view

pm:prj2023:iotelea:safeme [2023/05/16 17:01]
oana.cocoara [Rezultate Obţinute]
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 =====
  
-===== Download =====+<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. ​
  
-<note warning> +    * 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. 
-O arhivă ​(sau mai multe dacă este cazul) ​cu fişierele obţinute în urma realizării proiectuluisurseschemeetc. Un fişier README, un ChangeLogun script de compilare şi copiere automată pe uC crează întotdeauna ​impresie bună ;-).+ 
 +    * Problema ​(oarecum in acelasi registru ​cu cea anterioara)Folosind chei cu caractere uzualese poate ivi cazul in care am X xor Xceea ce da 0iar printarea va vedea asta ca un end of string. Asadaram folosit caractere mai putin folosite in chei. 
 + 
 +    * Alte probleme simple: read nu este functie blocanta si a trebuit sa fac un loop blocant cu Serial.available().
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. 
 </​note>​ </​note>​
 +===== Download =====
 +{{:​pm:​prj2023:​iotelea:​safe_me.zip|}}
  
 ===== Jurnal ===== ===== Jurnal =====
Line 106: Line 116:
      * Descrierea proiectului 2023/05/07      * Descrierea proiectului 2023/05/07
      * 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
 +     * Finalizarea partii software a aplicatiei 2023/05/28
 +     * Realizarea documentatiei finale si incarcarea lor pe site 2023/05/29
 +     * Prezentarea proiectului ​ 2023/05/30
 </​note>​ </​note>​
  
Line 127: Line 141:
        * https://​lastminuteengineers.com/​arduino-keypad-tutorial/​        * https://​lastminuteengineers.com/​arduino-keypad-tutorial/​
        * https://​robojax.com/​learn/​arduino/?​vid=robojax-keypad-4x3        * https://​robojax.com/​learn/​arduino/?​vid=robojax-keypad-4x3
 +
 +     * Codul aplicatiei - https://​github.com/​alexandra70/​PM_SafeMe/​tree/​main/​final
 +     * In realizarea codului de mai sus am folosit informatii care apar in uramtoarele surse:
 +       * https://​forum.arduino.cc/​t/​read-char-over-serial-solved/​153697/​6
 +       * https://​forum.arduino.cc/​t/​reading-from-serial-to-array-char-string/​42712
 +       * https://​www.engineersgarage.com/​moving-text-on-16x2-lcd-with-arduino/​
 +       * https://​circuits4you.com/​2018/​03/​08/​arduino-convert-string-to-character-array/​
 +       * https://​www.delftstack.com/​howto/​arduino/​arduino-wait-for-input/​
 +
 +     * In incercarea de a face sa functioneze USB HostShied am folosit urmatoarele surse:
 +       * https://​forum.arduino.cc/​t/​write-and-read-memory-stick-with-arduino-host-shield/​398451
 +       * https://​github.com/​greiman/​UsbFat
 +       * https://​github.com/​greiman/​UsbFat/​issues/​2
 </​note>​ </​note>​
  
pm/prj2023/iotelea/safeme.1684245707.txt.gz · Last modified: 2023/05/16 17:01 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