Introducció
La criptografia és una branca de la matemàtica i la informàtica que s'encarrega de protegir la informació mitjançant tècniques de xifrat i desxifrat. Aquest procés permet que només les persones autoritzades puguin accedir a la informació confidencial. En aquest tema, explorarem els conceptes bàsics de la criptografia, els tipus de criptografia i els algorismes més utilitzats.
Objectius d'Aprenentatge
Al final d'aquest tema, hauràs de ser capaç de:
- Comprendre els conceptes bàsics de la criptografia.
- Diferenciar entre criptografia simètrica i asimètrica.
- Conèixer els algorismes de xifrat més comuns.
- Aplicar tècniques bàsiques de xifrat i desxifrat.
Conceptes Bàsics de Criptografia
- Xifrat i Desxifrat
- Xifrat: Procés de convertir informació llegible (text pla) en un format incomprensible (text xifrat) utilitzant un algorisme de xifrat i una clau.
- Desxifrat: Procés invers al xifrat, on el text xifrat es converteix de nou en text pla utilitzant un algorisme de desxifrat i una clau.
- Clau
- Clau: Una peça d'informació que determina el resultat del procés de xifrat i desxifrat. Les claus poden ser simètriques o asimètriques.
- Algorisme de Xifrat
- Algorisme de Xifrat: Una seqüència de passos matemàtics utilitzats per xifrar i desxifrar la informació.
Tipus de Criptografia
- Criptografia Simètrica
- Definició: Utilitza la mateixa clau per al xifrat i el desxifrat.
- Avantatges: Ràpida i eficient per a grans quantitats de dades.
- Desavantatges: La distribució segura de la clau és un repte.
- Exemples: DES, AES, RC4.
- Criptografia Asimètrica
- Definició: Utilitza un parell de claus: una clau pública per al xifrat i una clau privada per al desxifrat.
- Avantatges: Millor per a la distribució segura de claus.
- Desavantatges: Més lenta que la criptografia simètrica.
- Exemples: RSA, ECC, DSA.
Algorismes de Xifrat Comuns
- DES (Data Encryption Standard)
- Tipus: Simètric
- Clau: 56 bits
- Seguretat: Considerat insegur per a moltes aplicacions modernes.
- AES (Advanced Encryption Standard)
- Tipus: Simètric
- Clau: 128, 192 o 256 bits
- Seguretat: Molt segur i àmpliament utilitzat.
- RSA (Rivest-Shamir-Adleman)
- Tipus: Asimètric
- Clau: Variable (normalment 2048 bits o més)
- Seguretat: Molt segur per a la distribució de claus.
Exemples Pràctics
Exemple 1: Xifrat Simètric amb AES
from Crypto.Cipher import AES from Crypto.Random import get_random_bytes # Generar una clau de 16 bytes (128 bits) key = get_random_bytes(16) # Crear un objecte de xifrat AES cipher = AES.new(key, AES.MODE_EAX) # Text pla a xifrar data = b'Informació confidencial' # Xifrar el text pla nonce = cipher.nonce ciphertext, tag = cipher.encrypt_and_digest(data) print(f'Text xifrat: {ciphertext}')
Exemple 2: Xifrat Asimètric amb RSA
from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP # Generar un parell de claus RSA key = RSA.generate(2048) public_key = key.publickey() # Crear un objecte de xifrat RSA amb la clau pública cipher_rsa = PKCS1_OAEP.new(public_key) # Text pla a xifrar data = b'Informació confidencial' # Xifrar el text pla ciphertext = cipher_rsa.encrypt(data) print(f'Text xifrat: {ciphertext}')
Exercicis Pràctics
Exercici 1: Xifrat i Desxifrat amb AES
- Genera una clau AES de 128 bits.
- Xifra el text pla "Curs de Ciberseguretat" utilitzant AES.
- Desxifra el text xifrat per obtenir el text pla original.
Solució
from Crypto.Cipher import AES from Crypto.Random import get_random_bytes # Generar una clau de 16 bytes (128 bits) key = get_random_bytes(16) # Crear un objecte de xifrat AES cipher = AES.new(key, AES.MODE_EAX) # Text pla a xifrar data = b'Curs de Ciberseguretat' # Xifrar el text pla nonce = cipher.nonce ciphertext, tag = cipher.encrypt_and_digest(data) # Desxifrar el text xifrat cipher = AES.new(key, AES.MODE_EAX, nonce=nonce) plaintext = cipher.decrypt(ciphertext) print(f'Text pla original: {plaintext.decode()}')
Exercici 2: Xifrat i Desxifrat amb RSA
- Genera un parell de claus RSA.
- Xifra el text pla "Curs de Ciberseguretat" utilitzant la clau pública.
- Desxifra el text xifrat utilitzant la clau privada per obtenir el text pla original.
Solució
from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP # Generar un parell de claus RSA key = RSA.generate(2048) public_key = key.publickey() # Crear un objecte de xifrat RSA amb la clau pública cipher_rsa = PKCS1_OAEP.new(public_key) # Text pla a xifrar data = b'Curs de Ciberseguretat' # Xifrar el text pla ciphertext = cipher_rsa.encrypt(data) # Desxifrar el text xifrat cipher_rsa = PKCS1_OAEP.new(key) plaintext = cipher_rsa.decrypt(ciphertext) print(f'Text pla original: {plaintext.decode()}')
Resum
En aquest tema, hem explorat els conceptes bàsics de la criptografia, incloent-hi el xifrat i desxifrat, les claus i els algorismes de xifrat. Hem diferenciat entre criptografia simètrica i asimètrica, i hem vist exemples pràctics d'algorismes de xifrat com AES i RSA. A més, hem proporcionat exercicis pràctics per reforçar els conceptes apresos. Ara estàs preparat per aprofundir en altres aspectes de la seguretat de la informació.
Curs de Ciberseguretat
Mòdul 1: Introducció a la Ciberseguretat
- Conceptes Bàsics de Ciberseguretat
- Tipus d'Amenaces i Atacs
- Història i Evolució de la Ciberseguretat
Mòdul 2: Fonaments de Seguretat de la Informació
Mòdul 3: Seguretat en Xarxes
- Fonaments de Xarxes
- Protocols de Seguretat en Xarxes
- Firewalls i Sistemes de Detecció d'Intrusos (IDS/IPS)
Mòdul 4: Seguretat en Sistemes i Aplicacions
- Seguretat en Sistemes Operatius
- Seguretat en Aplicacions Web
- Proves de Penetració i Avaluació de Vulnerabilitats
Mòdul 5: Gestió d'Incidents i Resposta a Incidents
Mòdul 6: Compliment i Normatives
- Regulacions i Estàndards de Ciberseguretat
- Polítiques de Seguretat i Governança
- Auditories i Avaluacions de Compliment
Mòdul 7: Tecnologies Emergents i Tendències
- Intel·ligència Artificial i Ciberseguretat
- Blockchain i Seguretat
- Internet de les Coses (IoT) i Seguretat