add SDi semester 6 (#26)

This commit is contained in:
Rémi Heredero authored and GitHub committed 2024-05-04 17:55:50 +02:00
commit 6139748849
14 files changed
+85

No files matched your search

+2
View File
@@ -13,6 +13,8 @@
- [IOT Technologies](/infotro/SDi/iot_technologies.md)
- [Protocol development](/infotro/SDi/protocol_development.md)
- [Bluetooth](/infotro/SDi/bluetooth.md)
- [Database](/infotro/SDi/database.md)
- [Information Security](/infotro/SDi/security.md)
## [Eln - Électronique](/infotro/Eln/)
- [AD/DA](/infotro/Eln/ADDA)
+2
View File
@@ -6,3 +6,5 @@ SDi - Système Distribué
- [IOT Technologies](/infotro/SDi/iot_technologies.md)
- [Protocol development](/infotro/SDi/protocol_development.md)
- [Bluetooth](/infotro/SDi/bluetooth.md)
- [Database](/infotro/SDi/database.md)
- [Information Security](/infotro/SDi/security.md)
Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

+30
View File
@@ -0,0 +1,30 @@
<header><h1>
Database
</h1></header>
[Lab about databases and SQL](/infotro/SDi/labs/database/README.md).
# Relational database
Lorsque l'on fait une database, on peut représenter des objets de 3 manières différentes :
1. Avec des valeurs `NULL`:
- Une table pour tous les attributs de la classe parents et tous les enfants.
- Les attributs des enfants qui ne sont pas dans la table sont `NULL`.
<br>![Database_style_null](medias/database-1_null.png)
2. En style Orienté Objet:
- Une table pour chaque classe.
- Chaque table a seulement ces attributs spécifiques.
- Les tables sont liées par des clés étrangères.
<br>![Database_style_object](medias/database-2_object.png)
3. En style Relationnel:
- Une table pour chaque classe.
- Chaque table à tous les attributs de la classe parente et de l'enfant.
<br>![Database_style_relation](medias/database-3_relation.png)
## Clés
- **Clé primaire** : identifie de manière unique une ligne dans une table (colonne unique ou combinaison unique).
- **Clé étrangère** : référence sur une clé primaire d'une table.
## Suppression
- **NO ACTION** : empêche la suppression si des lignes sont liées.
- **SET NULL** : met à `NULL` les valeurs liées.
- **CASCADE** : supprime les lignes liées.
Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

+49
View File
@@ -0,0 +1,49 @@
<header><h1>
Information Security
</h1></header>
[Labs about information security](/infotro/SDi/labs/SSL/README.md)
# Clé sysmétrique
Alice et Bob ont la même clé secrète pour chiffrer et déchiffrer les messages.
On peut encrypter par bloc ou par flux.
- Par bloc : on découpe le message en blocs de taille fixe et on chiffre chaque bloc.
On doit obligatoirement finir par un byte de padding.
- Par flux : on chiffre le message en continu. (Convolution)
Un cryptage ECB (Electronic Code Book) encrypt un message par bloc indépendant.
Cela signifie que si deux blocs sont identiques, ils seront chiffrés de la même manière.
Cela peut être dangereux si un attaquant peut deviner le contenu du message.
![ECB_Concatenation](medias/security-ecb.png)
Un cryptage CBC (Cipher Block Chaining) utilise un vecteur d'initialisation pour chiffrer le premier bloc.
Le vecteur d'initialisation peut être public.
Ensuite, on utilise le bloc chiffré précédent pour chiffrer le bloc suivant.
Cela permet de ne pas avoir le même chiffrage pour deux blocs identiques.
![CBC_chaine](medias/security-cbc.png)
Sans utiliser de vecteur d'initialisation, un message bien qu'encrypté peut être deviné.
Cela permet de trouver la clé secrète.
Il vaut mieux utiliser un vecteur d'initialisation.
![TuxPenguinModes.jpeg](medias%2FTuxPenguinModes.jpeg)
![Cipher modes of Operations](cipher_modes.png)
# Échange de clé avec Diffie-Hellman
Diffie-Hellman permet d'échanger une clé secrète sans que les deux parties se soient jamais rencontrées.
- Alice et Bob se mettent d'accord sur un nombre premier p et un générateur g.
- Alice choisit un nombre $a$ et Bob choisit un nombre $b$.
- Alice envoie à Bob $g^a \mod p$ et Bob envoie à Alice $g^b \mod p$.
- Alice calcule $(g^b)^a \mod p$ et Bob calcule $(g^a)^b \mod p$.
Les deux calculs donnent la même clé secrète.
![Diffie-Hellman Colors](medias/security-diffie_hellman_color.png)
![Diffie-Hellman ](medias/security-diffie_hellman.png)
# Clé asymétrique
#RTFM
+2
View File
@@ -9,6 +9,8 @@
* [IOT Technologies](/infotro/SDi/iot_technologies.md)
* [Protocol development](/infotro/SDi/protocol_development.md)
* [Bluetooth](/infotro/SDi/bluetooth.md)
* [Database](/infotro/SDi/database.md)
* [Information Security](/infotro/SDi/security.md)
* [Eln - Électronique](/infotro/Eln/)
* [AD/DA](/infotro/Eln/ADDA)
* [Signaux et échantillonnage](/infotro/Eln/SignauxEtEchantillonnage)