Cifra de Hill 3×3
Com a chave 6,24,1,13,16,10,20,17,15, a palavra ACT vira POH: cada bloco de três letras é multiplicado pela matriz módulo 26, então cada letra cifrada depende de três letras originais. A matriz inversa para descriptografar vem junto. 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
- ACT
- Key
- 6,24,1,13,16,10,20,17,15
- Modo de cálculo
- Encrypt
- Resultado
- POH
- Det
- 25
- Det. inverso
- 25
- Comprimento
- 3
A cifra de Hill 3×3 é uma substituição poligráfica clássica inventada por Lester S. Hill que multiplica blocos sucessivos de três letras por uma matriz-chave inteira três por três módulo vinte e seis. A criptografia mapeia vetores de texto claro para texto cifrado com C igual a K vezes P mod 26; a descriptografia multiplica pela inversa modular de K quando o determinante é coprimo com vinte e seis. Diferente de mapas monoalfabéticos como César ou Atbash, cada letra do cifrado depende de três letras do claro, o que enfraquece a análise de frequência de letra única e torna a cifra um passo didático padrão rumo à álgebra linear sobre anéis modulares. As pessoas usam em lições de criptoanálise, aquecimentos de CTF, demos de álgebra linear e livros de enigmas que precisam de uma cifra por blocos reversível com chave numérica curta. Esta capacidade aceita texto não vazio, uma chave de nove números em ordem por linhas e um modo opcional de criptografar ou descriptografar; devolve o fluxo de letras transformado mais o determinante, a matriz inversa, a contagem de preenchimento e o número de blocos.
Regras de validação, matrizes invertíveis e armadilhas comuns
A regra de produto decisiva é que a matriz-chave seja invertível módulo vinte e seis: o mdc do determinante reduzido mod 26 com vinte e seis deve ser um para existir uma matriz inversa modular. Se det de K for par ou compartilhar o fator treze com vinte e seis, o mapa não é bijetivo e a descriptografia seria impossível; a ferramenta relata uma matriz-chave não invertível em vez de devolver um embaralhamento unidirecional.
Dígitos, espaços e pontuação no corpo da mensagem são ignorados em vez de criptografados, de modo que só o fluxo de letras molda a grade de blocos; se nenhuma letra restar após a filtragem, o pedido falha. Não trate a saída como criptografia de confidencialidade: o espaço de chaves de matrizes modulares pequenas é minúsculo pelos padrões atuais, ataques de texto claro conhecido recuperam K com poucos triplos emparelhados, 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 3x3, Hill criptografar descriptografar matriz ou cifra poligráfica três por três; afim e multiplicativa respondem a mapas modulares de letra única, Playfair a digrafos em quadrado e Base64 a codificação, por isso permanecem ferramentas separadas. Ao descriptografar, use os mesmos nove números de chave que produziram o cifrado e a mesma convenção de preenchimento; uma matriz errada gera um mapa linear diferente que não coincidirá com o texto original.
Onde a versão 3×3 é usada e seus limites
Chame a cifra de Hill 3×3 gratuita no navegador para conferir lições, slides sobre matrizes em Z vinte e seis, prática de CTF e criptografias ou descriptografias pontuais sem escrever código de inversa modular de matrizes em cada linguagem. Um fluxo típico de aula mostra que cifras monoalfabéticas são mapas um a um, introduz a multiplicação por blocos com uma matriz invertível fixa, calcula det à mão e verifica que só determinantes coprimos descriptografam. Manuais de suporte podem reverter notas levemente ofuscadas que a equipe escreveu com chaves didáticas conhecidas.
Sites de enigmas podem pré-calcular respostas e revelá-las sob demanda com mode decrypt. Combine com análise de frequência ou outras ferramentas clássicas só quando um passo didático posterior precisar de outra família de cifra — mantenha a landing Hill três por três com a própria intenção de SEO em torno da substituição poligráfica por matriz de nove números.
Casos de uso
Lições de álgebra linear e criptoanálise
Alunos criptografam frases curtas com uma matriz 3×3 conhecida, calculam det e inversa mod 26 e descriptografam cifrados dos colegas sem instalar um CAS.
Aquecimentos de CTF e livros de enigmas
Autores de desafios enviam uma chave de nove números e um bloco Hill; solucionadores recuperam o claro com mode decrypt quando a matriz é invertível.
Perguntas frequentes
Como criptografo texto com a cifra de Hill 3×3?
O campo result da resposta contém as letras do cifrado em maiúsculas.
Como descriptografo um texto cifrado Hill?
Envie o cifrado como text, os mesmos nove números de chave usados para criptografar e mode decrypt (ou decode). O result é o fluxo de letras reconstruído quando a chave é invertível e coincide.
O que acontece se a matriz-chave não for invertível?
O mapa Hill só é bijetivo quando gcd(det(K) mod 26, 26) vale 1.
A ferramenta da cifra de Hill 3×3 é gratuita?
A ferramenta no navegador roda grátis no seu dispositivo.
A cifra de Hill é criptografia segura?
Não. Hill é uma cifra poligráfica clássica para enigmas e ensino de álgebra linear, não para confidencialidade. Nunca 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-3x3 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"ACT","key":"6,24,1,13,16,10,20,17,15"}'const res = await fetch("https://api.kit.forhosting.com/enc/hill-3x3", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "ACT",
"key": "6,24,1,13,16,10,20,17,15"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/hill-3x3",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "ACT",
"key": "6,24,1,13,16,10,20,17,15"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/hill-3x3", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"ACT","key":"6,24,1,13,16,10,20,17,15"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"ACT","key":"6,24,1,13,16,10,20,17,15"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/hill-3x3", 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": "ACT",
"key": "6,24,1,13,16,10,20,17,15"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.hill_3x3",
"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 solicitação falha com invalid_input e uma mensagem clara de matriz não invertível.
Como o mapa Hill 3×3 funciona e o que a resposta contém
A criptografia trata cada letra latina como um número de zero a vinte e cinco, agrupa o fluxo em triplas sucessivas, multiplica cada vetor coluna pela matriz-chave K três por três e reduz cada coordenada módulo vinte e seis antes de devolver letras maiúsculas. Só participam A–Z e a–z: são convertidas para maiúsculas e não letras são descartadas para o alinhamento de blocos permanecer determinístico com espaços e pontuação. Se a contagem de letras não for múltiplo de três, o motor preenche com a letra X no final, convenção clássica de ensino para o último bloco incompleto. A descriptografia recupera o texto claro calculando a matriz inversa modular de K tal que K vezes a inversa é a identidade mod 26, e então multiplica cada tripla do cifrado por essa inversa. Envie JSON com o campo string obrigatório text em qualquer mensagem não vazia, a key obrigatória com nove inteiros em ordem por linhas como string separada por vírgulas, um array plano de nove números ou um array aninhado três por três, e o mode opcional com padrão encrypt. Os aliases input, value, s, message, plaintext e ciphertext valem para o corpo; matrix, key_matrix, k e key_numbers para a chave; op, action, direction e operation para o modo. Em sucesso a resposta inclui result com o cifrado ou o claro em maiúsculas, mode normalizado para encrypt ou decrypt, key como matriz três por três reduzida mod 26, key_flat com as nove entradas, key_inv como matriz inversa usada na descriptografia, det e det_inv para o determinante e sua inversa mod 26, length igual à contagem original de caracteres, letters_used após o preenchimento, a contagem de padding, blocks igual a letters_used dividido por três, e method igual a hill_3x3 para os clientes ramificarem sem adivinhar a forma. Entradas idênticas sempre produzem o mesmo JSON porque o caminho é aritmética modular pura, sem rede, sem semente aleatória e sem relógio de parede.
Regras de validação, matrizes invertíveis e armadilhas comuns
Text ausente, não string ou vazio eleva invalid_input e não é cobrado na API pré-paga após o motor rejeitar o pedido. Uma chave com menos ou mais de nove inteiros, entradas não inteiras, floats ou tokens vazios também falha com invalid_input.
Uso da API, preço, fluxos de 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 que publicam SDKs podem mapear o campo result para um botão de copiar enquanto key, key_inv, det e method tornam autoexplicativos os exemplos OpenAPI. Mantenha os payloads em tamanhos de texto ordinários adequados a uma chamada item em isolate Worker; esta ferramenta é para mensagens e trechos, não para binários multi-megabyte.
Casos de integração
Pipelines e fixtures de CI
Scripts e testes de integração contínua fixam saídas Hill determinísticas e o erro de matriz não invertível para que bugs de inversa ou determinante falhem rápido.