add SDi semester 6 (#26)
No files matched your search
@@ -13,6 +13,8 @@
|
|||||||
- [IOT Technologies](/infotro/SDi/iot_technologies.md)
|
- [IOT Technologies](/infotro/SDi/iot_technologies.md)
|
||||||
- [Protocol development](/infotro/SDi/protocol_development.md)
|
- [Protocol development](/infotro/SDi/protocol_development.md)
|
||||||
- [Bluetooth](/infotro/SDi/bluetooth.md)
|
- [Bluetooth](/infotro/SDi/bluetooth.md)
|
||||||
|
- [Database](/infotro/SDi/database.md)
|
||||||
|
- [Information Security](/infotro/SDi/security.md)
|
||||||
|
|
||||||
## [Eln - Électronique](/infotro/Eln/)
|
## [Eln - Électronique](/infotro/Eln/)
|
||||||
- [AD/DA](/infotro/Eln/ADDA)
|
- [AD/DA](/infotro/Eln/ADDA)
|
||||||
|
|||||||
@@ -6,3 +6,5 @@ SDi - Système Distribué
|
|||||||
- [IOT Technologies](/infotro/SDi/iot_technologies.md)
|
- [IOT Technologies](/infotro/SDi/iot_technologies.md)
|
||||||
- [Protocol development](/infotro/SDi/protocol_development.md)
|
- [Protocol development](/infotro/SDi/protocol_development.md)
|
||||||
- [Bluetooth](/infotro/SDi/bluetooth.md)
|
- [Bluetooth](/infotro/SDi/bluetooth.md)
|
||||||
|
- [Database](/infotro/SDi/database.md)
|
||||||
|
- [Information Security](/infotro/SDi/security.md)
|
||||||
|
After Width: | Height: | Size: 154 KiB |
@@ -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>
|
||||||
|
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>
|
||||||
|
3. En style Relationnel:
|
||||||
|
- Une table pour chaque classe.
|
||||||
|
- Chaque table à tous les attributs de la classe parente et de l'enfant.
|
||||||
|
<br>
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
After Width: | Height: | Size: 148 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 163 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 61 KiB |
@@ -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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# É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.
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
# Clé asymétrique
|
||||||
|
#RTFM
|
||||||
@@ -9,6 +9,8 @@
|
|||||||
* [IOT Technologies](/infotro/SDi/iot_technologies.md)
|
* [IOT Technologies](/infotro/SDi/iot_technologies.md)
|
||||||
* [Protocol development](/infotro/SDi/protocol_development.md)
|
* [Protocol development](/infotro/SDi/protocol_development.md)
|
||||||
* [Bluetooth](/infotro/SDi/bluetooth.md)
|
* [Bluetooth](/infotro/SDi/bluetooth.md)
|
||||||
|
* [Database](/infotro/SDi/database.md)
|
||||||
|
* [Information Security](/infotro/SDi/security.md)
|
||||||
* [Eln - Électronique](/infotro/Eln/)
|
* [Eln - Électronique](/infotro/Eln/)
|
||||||
* [AD/DA](/infotro/Eln/ADDA)
|
* [AD/DA](/infotro/Eln/ADDA)
|
||||||
* [Signaux et échantillonnage](/infotro/Eln/SignauxEtEchantillonnage)
|
* [Signaux et échantillonnage](/infotro/Eln/SignauxEtEchantillonnage)
|
||||||
|
|||||||