Interaktivní osnova
Tématické skupiny v rámci předmětu PB173 Tematicky zaměřený vývoj aplikací v jazyce C/C++
1. týden / 1st week 16.9.2014 (úvod, kryptografické knihovny / introduction, cryptographic libraries)
Materiály
Slidy ze cvičení: Scribd
Bc. práce popisující možnosti OpenSSL (Petr Lefner)
Krátký dokument popisující využití OpenSSL a způsob linkování ve Visual Studiu
Teoretická část
-
Nároky na kryptografické aplikace obecně
-
Korektnost implementace
-
Odolnost vůči chybám
-
-
Často používané knihovny
-
OpenSSL http://www.openssl.org/
-
PolarSSL http://polarssl.org/source_code
-
BouncyCastle cryptographic library http://www.bouncycastle.org/ (Java)
-
-
Způsob použití kódu knihovny
-
kompilace vybraných částí kódu do aplikace
-
použití dynamicky linkovaných knihoven
-
použití služeb (cryptographic service providers)
-
-
Nástroje používané na cvičeních
-
IDE (Eclipse, NetBeans, Visual Studio), debugger, verzovací nástroje, testy
-
-
Požadavky na vypracování prací, způsob hodnocení
Praktický úkol
-
Základní knihovny, nástroje (IDE, debugger)
-
Stažení knihovny http://www.openssl.org/source/ (verze 1.0.1i)
-
ověření PGP podpisu
-
-
Stažení knihovny http://polarssl.org/download_overview (verze 1.3.8)
-
Zašifrování/hašování zadaného souboru - příprava pro šifrování/dešifrování balíku dat vyměňovaných v rámci videokonference
-
extrakce algoritmů AES a SHA-2
-
vytvoření kódu, který bude používat AES a SHA-2 z PolarSSL
-
výstupem bude zašifrovaný soubor s připojenou hash hodnotou
-
načtení zašifrovaného souboru, dešifrování, ověření hash hodnoty
-
(pro potřeby této domácí úlohy použijte fixní klíč pro AES (konstanta v kódu), není nutné řešit distribuci klíče)
-
-
Nahrání úkolu jako jednoho zip souboru do odevzdávárny ISu (Crypto - 1. homework (AES+SHA2))
-
TERMÍN: do 22.9. 23:59 (první část)
-
program, který umí načítat, šifrovat, dešifrovat a verifikovat hash
-
textový soubor obsahující popis, jak jste provedli verifikaci PGP podpisu na OpenSSL balíku včetně získu veřejného klíče apod.
-
vybraná řešení budou diskutována během semináře 23.9.
-
hodnocení 0-5 bodů
-
-
TERMÍN: do 29.9. 23:59 (druhá část)
-
doplnění existujícího kódu dle diskuze v semináři
-
doplnění unit testů
-
hodnocení 0-5 bodů
-
------------------------------------------------------------------------------------------------------------------------------------
Materials
Slides from seminar: Scribd
Short tutorial about OpenSSL usage and linking inside Visual Studio
Teoretická část-
Requirements to cryptographic libraries
-
Implementation correctness
-
Resilience to bugs
-
-
LIbraries used often
-
OpenSSL http://www.openssl.org/
-
PolarSSL http://polarssl.org/source_code
-
BouncyCastle cryptographic library http://www.bouncycastle.org/ (Java)
-
-
How library is used?
-
compilation of selected parts (e.g., single algorithm) into target application
-
linking of dynamic libraries (dll, so)
-
usage of (cryptographic) service providers
-
-
Tools used at seminar
-
IDE (Eclipse, NetBeans, Visual Studio), debugger, version control, tests
-
Practical assignment (homework)
-
Basic libraries, tools (IDE, debugger)
-
Download library http://www.openssl.org/source/ (version 1.0.1i)
-
verify PGP signature
-
-
Download library, http://polarssl.org/download_overview (version 1.3.8)
-
Develop application capable to encrypt & hash supplied file (preparation for project)
-
extract algorithms AES and SHA-2 from PolarSSL
-
read file, encrypt with AES, compute SHA-2 hash, write into output file (encrypted + hash)
-
read file, decrypt with AES, verify hash value
-
(for the moment, use static key for AES - no key distribution required)
-
-
Upload application source codes as single zip file into IS Homework vault (Crypto - 1. homework (AES+SHA2))
-
DEADLINE: 22.9. 23:59 (first part)
-
application capable to read, encrypt, decrypt, hash
-
Text file containing description how you did PGP signature verification (whole process including import of public keys etc.)
-
selected solutions will be discussed during next lecture (23.9.)
-
0-5 points assigned
-
-
DEADLINE 29.9. 23:59 (second part)
-
finalization of codes based on the discussions during lecture
-
addition of unit tests
-
0-5 points assigned
-