Cifra de Hill 2×2
Com a matriz-chave 3, 3, 2 e 5, HELP vira HIAT: cada par de letras é multiplicado pela matriz módulo 26. Você também vê o determinante, aqui 9, e a matriz inversa necessária para descriptografar. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- HELP
- A
- 3
- B
- 3
- C
- 2
- D
- 5
- Modo de cálculo
- Encrypt
- Resultado
- HIAT
- Det
- 9
- Det. inverso
- 3
- Inversa
- 15, 17, 20, 9
A cifra de Hill é uma substituição poligráfica clássica inventada por Lester S. Hill que criptografa blocos de letras com álgebra linear modular em vez de um único deslocamento ou alfabeto por palavra-chave. Na forma dois por dois, cada par de letras vira um vetor coluna multiplicado por uma matriz-chave de quatro entradas módulo vinte e seis, de modo que o texto cifrado de cada digrafo depende das duas letras do claro ao mesmo tempo. A descriptografia multiplica pela inversa modular dessa matriz, que existe somente quando o determinante é coprimo com vinte e seis. Estudantes, jogadores de CTF e autores de puzzles usam o caso 2×2 porque a aritmética permanece tratável e ainda demonstra matrizes invertíveis sobre Z/26Z. Esta capacidade aceita texto não vazio, quatro inteiros de chave a, b, c e d, e um modo opcional de criptografar ou descriptografar; devolve o fluxo de letras transformado mais o determinante, a matriz inversa e metadados de digrafos.
Como o mapa Hill 2×2 funciona e o que a resposta contém
A criptografia trata cada letra latina como um número de zero a vinte e cinco e processa o fluxo de duas em duas. Para um digrafo com valores x1 e x2 e matriz-chave K com linhas a b em cima e c d embaixo, o par cifrado é y1 igual a a vezes x1 mais b vezes x2 módulo vinte e seis e y2 igual a c vezes x1 mais d vezes x2 módulo vinte e seis. As letras são reescritas em maiúsculas A a Z.
Dígitos, espaços, pontuação, emoji e scripts não latinos são removidos antes do emparelhamento para que a matriz veja sempre um fluxo alfabético puro; se a contagem de letras filtradas for ímpar ao criptografar, um preenchimento X é acrescentado para que cada bloco seja digrafo. A descriptografia recupera o claro calculando a inversa matricial modular de K e multiplicando da mesma forma, o que exige que o determinante ad menos bc reduzido módulo vinte e seis seja coprimo com vinte e seis.
O mode opcional aceita encrypt e encode para o mapa direto e decrypt e decode para a inversa.
Regras de validação, matrizes invertíveis e armadilhas comuns
Texto sem letras latinas após o filtro também falha, porque não há digrafos a formar. A regra de produto decisiva é a invertibilidade da matriz-chave módulo vinte e seis: o determinante det igual a a vezes d menos b vezes c reduzido a zero–vinte e cinco deve satisfazer gcd de det e vinte e seis igual a um.
Quando esse gcd é maior que um o mapa não é bijetivo em digrafos e a descriptografia não pode ser única, então a capacidade reporta matriz-chave não invertível com o determinante e o gcd calculados na mensagem de erro. Determinantes válidos são as unidades de Z/26Z—um, três, cinco, sete, nove, onze, quinze, dezessete, dezenove, vinte e um, vinte e três e vinte e cinco—de modo que estruturas singulares ou só pares como uma identidade duplicada costumam falhar.
Na descriptografia, contagem ímpar de letras após o filtro é rejeitada porque o cifrado deve chegar em digrafos completos; a criptografia pode preencher com X, mas a descriptografia não inventa letra faltante. Não trate a saída como criptografia de confidencialidade: o espaço de chave de quatro resíduos pequenos é minúsculo, ataques de claro conhecido recuperam sistemas lineares depressa, e a página do produto nunca deve vender Hill como controle de segurança para senhas, tokens ou dados pessoais.
Prefira esta landing quando a intenção de busca for cifra de Hill, Hill 2x2 ou cifra matricial mod 26; affine responde mapas lineares monoalfabéticos, Playfair retângulos de digrafos e Base64 codificação, permanecendo ferramentas separadas. Ao descriptografar, use os mesmos a, b, c e d que produziram o cifrado; uma matriz invertível errada gera outra substituição de digrafos que não coincidirá com o claro original.
Usos em sala de aula e limites práticos
Chame a cifra de Hill gratuita no navegador para lições de casa, slides, prática de CTF e criptografias ou descriptografias pontuais sem reimplementar a inversa matricial modular em cada linguagem. Um fluxo típico de sala começa com a matriz identidade para mostrar que digrafos passam inalterados quando K é a identidade, depois muda para a chave de livro três-três-dois-cinco e guia os alunos a multiplicar HELP em HIAT à mão antes de comparar com a ferramenta.
Professores podem enviar de propósito uma matriz não invertível como dois zero zero dois para demonstrar que o gcd do determinante com vinte e seis bloqueia a descriptografia, lição central de álgebra linear sobre anéis modulares. Playbooks de suporte podem reverter notas levemente ofuscadas escritas com chaves de sala conhecidas. Sites de puzzles podem pré-calcular respostas e revelá-las sob demanda com mode decrypt.
Combine com análise de frequências ou outras ferramentas clássicas só quando um passo didático posterior precisar de outra família de cifra—mantenha a Hill 2×2 em sua própria landing para que a intenção SEO continue nítida em torno da substituição de digrafos matricial módulo vinte e seis.
Casos de uso
Lições de criptoanálise e aquecimentos CTF
Alunos criptografam frases curtas com uma chave 2×2 conhecida, descriptografam o cifrado de digrafos de colegas ou verificam multiplicações matriciais modulares feitas à mão sem instalar um CAS.
Perguntas frequentes
Como criptografar texto com a cifra de Hill 2×2?
O campo result da resposta guarda os digrafos do cifrado em maiúsculas.
Como descriptografar um texto cifrado Hill?
Envie o cifrado como text, os mesmos a,b,c,d usados na criptografia e mode decrypt (ou decode). O result é o fluxo de letras maiúsculas reconstruído quando a chave coincide; contagens ímpares de letras após o filtro são rejeitadas.
O que acontece se a matriz-chave não for invertível mod 26?
A descriptografia exige gcd(det(K),26)=1; caso contrário o mapa de digrafos não é bijetivo.
A ferramenta de cifra de Hill 2×2 é gratuita?
A ferramenta do navegador roda grátis no seu dispositivo.
A cifra de Hill é criptografia segura?
Não. Hill é uma cifra poligráfica clássica para puzzles e ensino, não para confidencialidade. Nunca a use para senhas ou dados sensíveis.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/hill-2x2 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"HELP","a":3,"b":3,"c":2,"d":5}'const res = await fetch("https://api.kit.forhosting.com/enc/hill-2x2", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "HELP",
"a": 3,
"b": 3,
"c": 2,
"d": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/hill-2x2",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "HELP",
"a": 3,
"b": 3,
"c": 2,
"d": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/hill-2x2", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"HELP","a":3,"b":3,"c":2,"d":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"HELP","a":3,"b":3,"c":2,"d":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/hill-2x2", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "HELP",
"a": 3,
"b": 3,
"c": 2,
"d": 5
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.hill_2x2",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Quando a matriz-chave não é invertível módulo vinte e seis a requisição falha com invalid_input e uma mensagem clara de matriz-chave não invertível.
Como o mapa Hill 2×2 funciona e o que a resposta contém
Envie JSON com o campo string obrigatório text em qualquer mensagem não vazia que ainda tenha ao menos uma letra após o filtro, inteiros obrigatórios a, b, c e d cada um de zero a vinte e cinco, e mode opcional com padrão encrypt; os aliases input, value, s, message, plaintext e ciphertext funcionam para o corpo, enquanto k11, m11 e key_a alias a, e aliases no estilo k12 cobrem b, c e d. Em sucesso a resposta inclui result com as letras maiúsculas transformadas, mode normalizado para encrypt ou decrypt, as quatro entradas de chave, det e det_inv do caminho do determinante, inverse como lista plana de quatro números de K inversa, key_matrix como arranjo aninhado dois por dois, letters_in com o fluxo filtrado e possivelmente preenchido que entrou na matriz, digraph_count, booleano padded, length do texto original e method igual a hill_2x2 para que clientes ramifiquem sem adivinhar formas. Entradas idênticas produzem sempre o mesmo JSON porque o caminho é aritmética modular pura sem rede, semente aleatória nem relógio de parede.
Regras de validação, matrizes invertíveis e armadilhas comuns
Falta de text, text que não seja string ou uma string vazia geram invalid_input e não são cobrados na API pré-paga após a rejeição do motor. Faltam a, b, c ou d, chaves não inteiras ou valores fora de zero a vinte e cinco também falham com invalid_input.
Uso da API, preços, sala de aula e limites práticos
Use a API pré-paga do KIT quando um backend, função serverless, plataforma de tutoria ou SDK precisar de um contrato estável sob saldo a US$ 0,002 por item bem-sucedido; falhas de validação nunca consomem saldo após a rejeição. Autores de SDKs podem mapear o campo result para um botão de copiar enquanto key_matrix, det, inverse e method tornam exemplos OpenAPI autoexplicativos. Mantenha payloads em tamanhos de texto ordinários adequados a uma chamada item em isolate Worker; esta ferramenta é para mensagens e trechos, não blobs binários de vários megabytes.
Casos de integração
Demonstrações de álgebra linear modular em sala
Professores mostram que só matrizes com det coprimo a 26 são invertíveis, contrastam digrafos Hill com mapas afins monoalfabéticos e fixam a=3,b=3,c=2,d=5 como fixture de livro.
Fixtures de pipeline e CI
Scripts e testes de integração contínua fixam saídas Hill determinísticas e o erro de matriz-chave não invertível para que bugs acidentais de determinante ou inversa falhem rápido.