|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
|
matematica...credo ;)
qualcuno mi sa dire che cos'è quel mod???? le mie conoscenze sn ancora troppo scarse...
![]() http://upload.wikimedia.org/math/0/3...02a06b57e4.png il tutto sta qua... http://it.wikipedia.org/wiki/RSA ma senza capire il mod nn posso capire come funziona l'algoritmo ![]() grazie mille ciao |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
|
ma se ho 123^17 (mod 3233) come faccio a calcolare che è 855???
![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Volendo provarlo in Java: Codice:
BigInteger bi = BigInteger.valueOf (123L); BigInteger div = BigInteger.valueOf (3233L); bi = bi.pow (17); BigInteger mod_result = bi.mod (div); // Risultato di 123^17 mod 3233 System.out.println (mod_result);
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Oct 2006
Messaggi: 115
|
Si l'esempio più ricorrente sull'uso del mod è controllare che il resto di una divisione per due sia uguale a zero, per trovare i numeri pari.
Ad esempio in visual basic si usa così: If Numero1 Mod 2 = 0 Then MsgBox "numero pari!" Else MsgBox "numero dispari!" End If |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
|
mhh... ora inizio a capire un po meglio... e in c++ come si fa invece????
cmq se ho capito bene quell'855 non è altro che il resto di 123^17/3233... giusto? |
![]() |
![]() |
![]() |
#7 | ||
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
|
Quote:
![]() tu mi sai consigliare una di queste librerie?? Io non so dove mettere le mani... ![]() |
|
![]() |
![]() |
![]() |
#9 | |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Quote:
Codice:
#include <stdio.h> void main(void) { unsigned long base,esponente,divisore,resto,i; printf("Base: "); scanf("%8ld",&base); printf("Esponente: "); scanf("%8ld",&esponente); printf("Divisore: "); scanf("%8ld",&divisore); for(resto=base,i=0;i<(esponente-1);i++) resto=(resto*base)%divisore; printf("Resto: %ld\n",resto); } |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
|
funziona alla perfezione... grazie!!!
cmq se per altre volte mi venisse bisogno di usare numeri enormi... che librerie potrò usare?? |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
|
emmhh... ultima cosa
![]() se ho: x = 1 (mod n) significa che il resto di x/n è 1??? |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
![]() Normalmente si usa scrivere: x = a mod b o per dirla secondo i linguaggi C/C++, ecc... x = a % b dove x è il resto della divisione a/b.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
![]() |
#15 | ||
Member
Iscritto dal: May 2006
Messaggi: 71
|
Quote:
Quote:
Ciao ! |
||
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
|
Quote:
|
|
![]() |
![]() |
![]() |
#17 | |
Member
Iscritto dal: May 2006
Messaggi: 71
|
Quote:
![]() Permettimi una domanda: non conosci l'operatore Mod e ti interessi dei dettagli matematici dell'algoritmo RSA ??? ![]() Comunque ho capito dov'e' l'inghippo... (per la verita' ce l'aveva suggerito 0rph3n nella prima risposta al tuo thread !) L'espressione NON e': x = 1 (mod n) in quanto al posto dell'uguale (=) ci sono TRE trattini sovrapposti: e' l'operatore "congruenza in modulo" ! Il significato, con un esempio numerico, e' ad esempio: 11 <congruo> 6 (mod 5) e vuol dire che 11 e 6 sono numeri "congrui tra loro in modulo 5", in quanto hanno lo stesso resto (1) dividendoli per 5. Quindi: X <congruo> 1 (Mod N) significa che X e 1 hanno lo stesso resto in modulo N, e quindi X/N ha resto 1 (c.d.d. ![]() ![]() ![]() ![]() Auguri per lo studio !!!!! ![]() |
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
|
...mhh... capito!! grazie!!
![]() |
![]() |
![]() |
![]() |
#19 | ||
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
Quote:
...o anche che babbo natale non esiste ![]() Quote:
![]() |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:55.