Lunghezza e spazio delle chiavi: 56, 128 e 256 bit
La lunghezza di una chiave si scrive in modo compatto, ma la sua scala di sicurezza è facile da sottovalutare: ogni bit aggiuntivo raddoppia il numero di chiavi possibili.
Esegui gratis nel browser
Questo calcolatore converte qualsiasi lunghezza supportata nella dimensione esatta dello spazio delle chiavi e nel numero medio di tentativi richiesto da una ricerca esaustiva ideale. Inoltre, affianca il risultato ai riferimenti di 56, 128 e 256 bit, così da mostrare le differenze come potenze esatte di due anziché con definizioni vaghe. Il calcolo è deterministico e presuppone chiavi distribuite uniformemente, senza scorciatoie di attacco contro il sistema crittografico sottostante.
Dalla lunghezza in bit al numero di chiavi possibili
Una chiave di n bit può rappresentare due elevato a n sequenze di bit distinte. Questa semplice regola genera numeri che crescono molto più rapidamente di quanto suggerisca l’intuizione comune. Aggiungere un bit raddoppia lo spazio delle chiavi; aggiungerne dieci lo moltiplica per 1,024. Il calcolatore esegue l’elevamento a potenza con aritmetica intera esatta e restituisce l’intero valore decimale, non un’approssimazione in virgola mobile. Fornisce anche una forma compatta in notazione scientifica per una lettura immediata. Per esempio, una chiave di 56 bit ammette 72,057,594,037,927,936 valori possibili, mentre una di 128 bit ne ammette 340,282,366,920,938,463,463,374,607,431,768,211,456. Questi totali descrivono soltanto la dimensione dello spazio di ricerca. Non dimostrano che un algoritmo sia sicuro: difetti di implementazione, generazione debole delle chiavi, perdita di stato, attacchi crittoanalitici o errori di protocollo possono ridurre drasticamente il lavoro reale. Utilizzi il risultato per comprendere l’ordine di grandezza, poi valuti separatamente il cifrario, la modalità, il protocollo e la generazione delle chiavi.
Come interpretare lo sforzo medio di forza bruta
Una ricerca esaustiva prova chiavi candidate fino a trovare quella corretta. Se la chiave giusta è distribuita uniformemente e le candidate vengono verificate senza informazioni utili sulla sua posizione, può comparire in qualunque punto dell’ordine di ricerca. La posizione attesa è a metà dello spazio; il calcolatore indica quindi due elevato a n meno uno come numero medio di tentativi. È un valore atteso, non una garanzia: una singola ricerca potrebbe riuscire al primo tentativo oppure richiedere quasi tutte le chiavi possibili. Il risultato riporta deliberatamente i tentativi e non il tempo necessario a violare la chiave. Per convertire i tentativi in secondi occorre una velocità di prova attendibile per l’algoritmo, l’hardware, la strategia di parallelizzazione e il carico di verifica specifici. Una velocità ricavata da un altro cifrario o hash di password può risultare errata di molti ordini di grandezza. La media dei tentativi è pertanto la misura matematica stabile per confrontare le resistenze senza fingere che ogni obiettivo crittografico sia verificabile alla stessa velocità.
Confronto tra resistenze di 56, 128 e 256 bit
I record di confronto collocano la lunghezza scelta rispetto a tre riferimenti noti. Cinquantasei bit rappresentano uno spazio di ricerca storicamente importante, ma oggi ridotto. Centoventotto bit sono immensamente maggiori: il loro spazio delle chiavi equivale a due elevato a 72 volte quello di 56 bit. Duecentocinquantasei bit ampliano ancora lo spazio di un fattore pari a due elevato a 128 rispetto a 128 bit. Quando la lunghezza selezionata supera un riferimento, il risultato la definisce più forte e fornisce il fattore di moltiplicazione esatto. Quando è inferiore, la definisce più debole e mostra il divisore reciproco, evitando frazioni approssimative. Le lunghezze uguali vengono segnalate direttamente. Questi confronti riguardano solo lo spazio delle chiavi contro la forza bruta; non dichiarano una sicurezza equivalente tra primitive diverse. Una chiave di 256 bit non offre automaticamente 256 bit di sicurezza effettiva se la costruzione ha un limite inferiore, se la ricerca quantistica rientra nel modello di minaccia o se le chiavi provengono da una fonte distorta o a bassa entropia.
Casi d'uso
Esaminare un progetto crittografico
Converta una lunghezza proposta in valori esatti dello spazio delle chiavi e della ricerca attesa prima di confrontarla con l’obiettivo di sicurezza del progetto.
Spiegare la crescita esponenziale
Mostri a studenti o responsabili decisionali perché un modesto aumento dei bit moltiplica enormemente lo sforzo di ricerca esaustiva.
Verificare resistenze storiche e moderne
Affianchi una lunghezza personalizzata o precedente ai riferimenti fissi di 56, 128 e 256 bit mediante potenze esatte di due.
Domande frequenti
Come si calcola il numero di chiavi possibili?
Per una lunghezza di n bit, il numero di sequenze di bit possibili è esattamente 2^n.
Perché lo sforzo medio di forza bruta è metà dello spazio?
Con una chiave corretta distribuita uniformemente e senza scorciatoie di ricerca, la sua posizione attesa in un ordine esaustivo è a metà delle chiavi possibili.
Una chiave più lunga rende sempre sicuro un sistema?
No. La lunghezza misura soltanto un limite contro la forza bruta. Debolezze dell’algoritmo, difetti di implementazione, scarsa casualità, errori di protocollo ed esposizione delle chiavi possono determinare la sicurezza reale.
Perché il calcolatore non stima gli anni necessari?
Il tempo dipende dall’algoritmo specifico, dal costo di verifica, dall’hardware, dal parallelismo e dal modello di attacco. I tentativi consentono il confronto senza presumere una velocità arbitraria.
Che cosa significano più forte e più debole nel confronto?
Descrivono soltanto il rapporto tra spazi di ricerca esaustiva. Una differenza di d bit corrisponde a un fattore di 2^d.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Lo stesso calcolo deterministico può essere eseguito nel browser come capacità di livello A.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/key-space-bits \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"key_bits":128}'const res = await fetch("https://api.kit.forhosting.com/dev/key-space-bits", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"key_bits": 128
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/key-space-bits",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"key_bits": 128
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/key-space-bits", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"key_bits":128}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"key_bits":128}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/key-space-bits", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"key_bits": 128
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.key_space_bits",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_bits | 4096 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |