# Problema "Crittografia RSA"

**URL:** <https://forum.olinfo.it/t/problema-crittografia-rsa/7373>\
**Category:** Aiuto\
**Created:** [3 Giugno 2022, 4:57pm UTC](https://forum.olinfo.it/t/problema-crittografia-rsa/7373 "2022-06-03T16:57:37Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![michelangelo\_c](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/m/e495f1/32.png) [@michelangelo\_c](https://forum.olinfo.it/u/michelangelo_c)\
**Post date:** [3 Giugno 2022, 4:57pm UTC](https://forum.olinfo.it/t/problema-crittografia-rsa/7373/1 "2022-06-03T16:57:38Z")

</div>

Ho provato a risolvere il problema più volte, ma il programma ottiene sempre e solo 0/100. Potreste aiutarmi? Vi lascio il programma qui.

```auto
#include <iostream>
#include <cmath>
using namespace std;
void decifra(int N, int d, int L, int messaggio[], char plaintext[]){
	int i;
	for(i=0;i<L;i++){
		plaintext[i]=pow(messaggio[i],d);
		plaintext[i]=plaintext[i]%N;
	}	
	plaintext[L]='/0';
}

```

---

<div class="post-metadata">

**Author:** ![v.bizzarri](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/v/7c8e57/32.png) [@v.bizzarri](https://forum.olinfo.it/u/v.bizzarri)\
**Post date:** [3 Giugno 2022, 6:19pm UTC](https://forum.olinfo.it/t/problema-crittografia-rsa/7373/2 "2022-06-03T18:19:45Z")

</div>

Sei sicuro che plaintext[i] (che è di tipo char) possa contenere il risultato di pow(messaggio[i],d); ?  
Vedi bene le assunzioni.  
comunque così fa un pò di punti:

```auto
#include <iostream>
#include <cmath>
using namespace std;
void decifra(int N, int d, int L, int messaggio[], char plaintext[]){
	int i;
	for(i=0;i<L;i++){
		plaintext[i]=(char)(((int)pow(messaggio[i],d))%N);
		//plaintext[i]=plaintext[i]%N;
	}	
	//plaintext[L]='0';
}
```

---

<div class="post-metadata">

**Author:** ![michelangelo\_c](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/m/e495f1/32.png) [@michelangelo\_c](https://forum.olinfo.it/u/michelangelo_c)\
**Post date:** [4 Giugno 2022, 2:32pm UTC](https://forum.olinfo.it/t/problema-crittografia-rsa/7373/3 "2022-06-04T14:32:54Z")

</div>

Non credo che sia quello il problema, visto che se si inserisce un intero in una variabile char in teoria quella variabile sarà considerata come l’ASCII corrispondente all’intero, che è quello che serve per il problema, comunque grazie dell’aiuto.

---

<div class="post-metadata">

**Author:** ![qwfwq](https://forum.olinfo.it/user_avatar/forum.olinfo.it/qwfwq/32/2974_2.png) [@qwfwq](https://forum.olinfo.it/u/qwfwq)\
**Post date:** [4 Giugno 2022, 3:14pm UTC](https://forum.olinfo.it/t/problema-crittografia-rsa/7373/4 "2022-06-04T15:14:23Z")

</div>

Quello che non va è di utilizzare la funzione pow() del c++. Per risolvere il problema guarda questa [pagina](https://cp-algorithms.com/algebra/binary-exp.html#implementation).

---

<div class="post-metadata">

**Author:** ![michelangelo\_c](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/m/e495f1/32.png) [@michelangelo\_c](https://forum.olinfo.it/u/michelangelo_c)\
**Post date:** [4 Giugno 2022, 3:32pm UTC](https://forum.olinfo.it/t/problema-crittografia-rsa/7373/5 "2022-06-04T15:32:31Z")

</div>

Ho usato le funzioni della pagina e ora dà 100/100, grazie mille.
