L’operazione aritmetica modulo

Sabato 31 Maggio, 2008

Il "modulo" è una delle operazioni aritmentiche disponibili su praticamente tutti i linguaggi di programmazione (l'ho usato la prima volta con il Basic del Commodore 64). Può comparire come semplice operatore, come nel caso di Actionscript o Javascript che usano entrambi il carattere "percento" (a % b), o come metodo o istruzione. Per gli sviluppatori può risultare utile in contesti apparentemente diversi tra loro. Gskinner ne ha parlato poco tempo fa, mostrando alcuni classici, ma interessanti, esempi.

Semplificando, l'operazione modulo tra due numeri restituisce il resto della loro divisione. Per completezza diciamo che l'operazione di modulo è un argomento assai vasto, che ho trattato anche in La cifratura RSA! Questa volta, tuttavia, non parleremo di codici o cifrature, ma di cose utili e molto più semplici.

Divisibile per... alternare

Il primo uso che possiamo fare dell'operazione di modulo è quella di determinare se un numero a è divisibile per un numero b! Se il risultatto di a % b(userò qui la notazione % per indicare l'operazione di modulo) è zero, a è divisibile per b. Ricordo che quando ebbi a che fare con un problema simile non conoscevo l'operazione di modulo. Sul Commodore 64 mi serviva sapere se un numero era divisibile per 2. All'epoca usai questa sintassi (ho ritrovato il codice origionale - anno 1983):

CODE:
  1. 10 INPUT A
  2. 12 B=A/2: IF B = INT(B) THEN PRINT "OK IL NUMERO "A" E' PARI":GOTO 10
  3. 14 PRINT "IL NUMERO "A" E' DISPARI":GOTO 10

Il BASIC del Commodore 64, comunque, non possedeva l'operazione di modulo - almeno che io ricordi!!

Continua a leggere... »

Post correlati

As3Crypto ActionScript 3 Cryptography Library

Giovedì 15 Marzo, 2007

As3 Crypto Framework 1.1 è una libreria scritta in ActionScript 3 che permette di applicare i più comuni algoritmi di crittaggio, come:

  • Public Key Encryption: RSA (partial. encryption only.)
  • Secret Key Encryption: AES, DES, 3DES, BlowFish, XTEA, RC4
  • Confidentiality Modes: ECB, CBC, CFB, CFB8, OFB, CTR
  • Hashing Algorithms: MD5, SHA-1, SHA-224, SHA-256
  • Paddings available: PKCS#5, PKCS#1
  • Other Useful Stuff: HMAC, Random

La libreria mette a disposizione tutta una serie di classi per poter applicare gli algoritmi di crittaggio. Viene data in licenza BSD, visto che parte del sorgente proviene da codici Java, C e Javascript. Sul sito si possono trovare ulteriori informazioni, i sorgenti e i binari.

Post correlati

La cifratura RSA

Martedì 30 Gennaio, 2007

Prima di tutto, come accennato nel Post Crittografia il sistema RSA è una cifratura a chiave pubblica e sfrutta le proprietà dei numeri primi. Inoltre l'aritmetica adottata (nei calcoli) non è quella ordinaria, bensì la cosidetta artirmetica finita o modulare. Iniziamo proprio da quest'ultima per procedere passo dopo passo nella realizzazione di una cifratura RSA.

Continua a leggere... »

Post correlati