sujet
This commit is contained in:
parent
e8cfcdfda4
commit
bbfbd8fdce
25
python/5/TP.md
Normal file
25
python/5/TP.md
Normal file
@ -0,0 +1,25 @@
|
||||
## Implementation du chiffrement de Vernam
|
||||
|
||||
On souhaite construire un ensemble de fonctions qui permet de faire du chiffrement à la Vernam.
|
||||
|
||||
Pour cela on a besoin des fonctions suivantes :
|
||||
|
||||
- Générer une clé dans un fichier dont la longueur sera égale à la longueur du message. On génèrera cette clé dans un fichier ```vernam.txt```. Ce qui est généré c'est une suite d'entiers (compris entre 0 et 127; 7 bits) séparés par un espace.
|
||||
|
||||
```python
|
||||
def genereVernam (long, fic):
|
||||
```
|
||||
|
||||
où ```long``` est la longueur du message et ```fic``` est le nom du fichier dans lequel la clé sera enregistrée.
|
||||
|
||||
|
||||
- Ecrire une fonction (```encode```) qui prend un fichier (le message) en argument et qui génère un fichier (le coder) qui est la suite des caractères du message représentés sous forme d'entiers (compris entre 0 et 127)
|
||||
|
||||
```python
|
||||
def encode(fic_m, fic_enc)
|
||||
```
|
||||
|
||||
- Ecrire une fonction ```chiffrage``` qui prend en arguments 2 fichiers (le message codé et la clé et qui produit le message chiffré : $f[i] + g[i] \mod 256$
|
||||
|
||||
|
||||
|
13
python/5/c2byte.py
Normal file
13
python/5/c2byte.py
Normal file
@ -0,0 +1,13 @@
|
||||
|
||||
r = ''
|
||||
|
||||
x = ord('a')
|
||||
while ((x/2) != 0):
|
||||
if ((x % 2) == 0):
|
||||
r = r+'0'
|
||||
else:
|
||||
r = r+'1'
|
||||
x = x / 2
|
||||
|
||||
print(c2byte('a'))
|
||||
|
2
python/5/message.txt
Normal file
2
python/5/message.txt
Normal file
@ -0,0 +1,2 @@
|
||||
La pluie est bleue!
|
||||
Q'en pensez vous?
|
14
python/Ctrl1/DivEnt.py
Normal file
14
python/Ctrl1/DivEnt.py
Normal file
@ -0,0 +1,14 @@
|
||||
num = int(input("Entrer un numérateur : "))
|
||||
denum = int(input("Entrer un dénominateur : "))
|
||||
|
||||
global num1
|
||||
global v
|
||||
|
||||
num1 = num
|
||||
v = 0
|
||||
if (num >= 0) and (denum > 0):
|
||||
while (num1 - denum) >= 0:
|
||||
num1 = num1 - denum
|
||||
v = v+1
|
||||
r = num1
|
||||
print("La division", num, " par ", denum, " est égale à ", v, " et il reste ", r)
|
@ -1,13 +1,30 @@
|
||||
[!Note] Exercice (division entière)
|
||||
>On cherche à calculer la division entière de 2 nombres entiers positifs par la méthode de la soustraction.
|
||||
>1. Demander à l’utilisateur un numérateur
|
||||
>2. Demander à l’utilisateur un denominateur
|
||||
>3. Vérifier que les 2 valeurs sont positives (et non nulle pour le dénominateur)
|
||||
>4. Écrire le boucle qui fait la division
|
||||
>5. Afficher le résultat sous la forme suivante
|
||||
>
|
||||
>```
|
||||
>Entrer un numérateur : 1248
|
||||
>Entrer un dénominateur : 2
|
||||
>La division 1248 par 2 est égale à 624 et il reste 0
|
||||
>```
|
||||
### Exercice (division entière)
|
||||
On cherche à calculer la division entière de 2 nombres entiers positifs par la méthode de la soustraction.
|
||||
|
||||
1. Demander à l’utilisateur un numérateur
|
||||
2. Demander à l’utilisateur un denominateur
|
||||
|
||||
3. Vérifier que les 2 valeurs sont positives (et non nulle pour le dénominateur)
|
||||
|
||||
4. Écrire le boucle qui fait la division
|
||||
|
||||
5. Afficher le résultat sous la forme suivante
|
||||
|
||||
|
||||
```sh
|
||||
Entrer un numérateur : 1248
|
||||
Entrer un dénominateur : 2
|
||||
La division 1248 par 2 est égale à 624 et il reste 0
|
||||
```
|
||||
|
||||
13 diviser par 4
|
||||
|
||||
13 - 4 = 9 (1 soustraction)
|
||||
|
||||
9 - 4 = 5 (2 soustractions)
|
||||
|
||||
5 - 4 = 1 (**3** soustractions)
|
||||
|
||||
**1** - 4 < 0 STOP
|
||||
|
||||
On a fait 3 soustractions et il reste 1 donc 13 = **3** * 4 + **1**.
|
Loading…
Reference in New Issue
Block a user