Pensei em inverter quando vi que 56 aparece nas 3 primeiras palavras e as 3 últimas do texto plano são um “!”;
Você está no caminho…
Falowww
Resumindo: pelo que o Ozix descobriu, essa “criptografia” é bem fraquinha e consiste em embaralhar as letras, e mais algumas coisas.
É questão de você fornecer mais combinações plaintext/ciphertext para que ele descubra como funciona.
Com 2 combinações plaintext/ciphertext é difícil fazer as coisas, a menos que o algoritmo seja realmente fraco demais.
Pergunta imbecil número um: eu posso associar uma chave a esse algoritmo (ou seja, para cada chave diferente, o resultado é diferente?)
Pergunta imbecil número dois: você sabe o que é “salt”, “vetor de inicialização”, “padding” e outros conceitos básicos de criptografia?
Não estou desmerecendo seu esforço, mas é interessante você estudar um pouco mais. Criptografia não é para amadores.
Oi,
Usuário ‘java’, esqueça o que eu falei no meu primeiro post. Pensei que a ideia era decifrar a criptografia visivelmente! (com padrões de caracteres e sequencias númericas) sem utilização de um programa ou uma chave de criptografia.
Buscarei e estudarei para achar o resultado.
Tchauzin!
Isso é coisa para pessoas como vinigodoy,lina e Mark_Ameba
Eu fui entender como funciona a Criptografia Aes, e nem com o código pronto entendi direito…
(http://www.gta.ufrj.br/grad/05_2/aes/)
Boa sorte ae…
OPA! RESOLVI!
if (UM56MO56NZ56sOJ:TM8:mMI:rL9;MMH:VN46lM5ISNG:rQJ8=UF4 == Olá mundo!!!) &&
(TL7;OL5:TPH:sP9:vV8;r;pL=:sM79oY46pQ9:YL8:tO46MZJ:VM8;zNI:uX9:nXH:qN=:LM:;nUG:wWJ:LM:;qNI:MR9:LO7;mQ9:VL88qS46LN9:uT46oN9:PN7;OL=:MMG:NU5ILLI:VM58V6NUH:nX9:MP46nL5:MP=:QM;:lUJ:UTG:mMJ:\NI:\N7:WV9:nM89mT46uL6;lN9:lW6:WO5:lL7;NM=:xLI:NN99=NN4 == Unisaber Tecnologia em Análise e Desenvolvimento de Sistemas)
{
x = ML7;\LJ:LN8;NMI:YN5:VQ79lL46mWG:sP5:LL9:MSG8uZ46nN6;nM=:mMI:OS5:lPH:NM6;ML9:mL;8rL46lYG6nO=6sN=7LN47lP47VZ67nNJ6OT=7mL47wNJ6MU67mL67xT<6mN46mL56nW56SL56rSI:\N=:nM9:SM8;SO7;sOI:YL=:PO98LM46VL7;XLI:mN=ILO6:LW5:XL6;mL5:WY49lLG6vM6FML78MVI6lNH8LNH7zL98=BP4;
System.out.println(x);
}
O resultado deu:
Pare de perder tempo com isso, e vá fazer algo útil!!!
UAhuAHUah
zuera pessoal…
É foda msmo…
Boa sorte pra geral
[quote=enantiomero]Resumindo: pelo que o Ozix descobriu, essa “criptografia” é bem fraquinha e consiste em embaralhar as letras, e mais algumas coisas.
É questão de você fornecer mais combinações plaintext/ciphertext para que ele descubra como funciona.
Com 2 combinações plaintext/ciphertext é difícil fazer as coisas, a menos que o algoritmo seja realmente fraco demais.
Pergunta imbecil número um: eu posso associar uma chave a esse algoritmo (ou seja, para cada chave diferente, o resultado é diferente?)
Pergunta imbecil número dois: você sabe o que é “salt”, “vetor de inicialização”, “padding” e outros conceitos básicos de criptografia?
Não estou desmerecendo seu esforço, mas é interessante você estudar um pouco mais. Criptografia não é para amadores. [/quote]
ENAN, Ozix não descobriu o código, este código não é apenas de cifragem, existe um núcleo matemático, a cifragem é apenas o primeiro nível, após descobrir a cifragem que não será nada fácil (e até agora ninguém descobriu) com o dado nú será necessário QUEBRAR A FUNÇÃO MATEMÁTICA (que é o núcleo), é um pouco parecido com o RSA.
Não sou o guru da criptografia, mas antes de escrever essa classe passei a limpo alguns conceitos e técnicas.
reposta a pergunta imbecil um: para cada chave diferente o resultado é diferente (chavé pública), existe também uma chave privada que para cada chave pública pode assumir valores diferentes
resposta a pergunta imbecil dois: Para cada chave existe um salt aleatório, implementei um IV p/ a chave e para camuflar um padding em cada bloco.
Volto à premissa de que o objetivo é compartilhar e trocar informações…
E CONTINUAMOS…
Se é parecido com o RSA, vai ser realmente muito difícil de ser quebrado. ehhehehe. Nesse caso, você pode até publicar o algoritmo, que sem divulgar a chave ainda não conseguiremos quebrar as seqüências com facilidade.
Tenho algumas dúvidas. Todos os dados foram codificados com a mesma chave? Ou você está adotando chaves diferentes em cada exemplo? Esse algoritmo exige a presença da chave para ser decodificado?
Outra coisa que fiquei curioso. As letras e números são resultado direto do seu algoritmo, ou você usou algum tipo de encoding para transformar os bytes resultantes em algo que pudesse ser postado no GUJ (como Base64, por exemplo)?
Se é parecido com o RSA, vai ser realmente muito difícil de ser quebrado. ehhehehe. Nesse caso, você pode até publicar o algoritmo, que sem divulgar a chave ainda não conseguiremos quebrar as seqüências com facilidade.
Tenho algumas dúvidas. Todos os dados foram codificados com a mesma chave? Ou você está adotando chaves diferentes em cada exemplo? Esse algoritmo exige a presença da chave para ser decodificado?
Outra coisa que fiquei curioso. As letras e números são resultado direto do seu algoritmo, ou você usou algum tipo de encoding para transformar os bytes resultantes em algo que pudesse ser postado no GUJ (como Base64, por exemplo)?[/quote]
Ops! Quando citei que era parecido com o RSA queria informar que havia um núcleo matemático e não apenas cifragem. Mas no caso do meu algorítimo com a publicação é possível chegar a chave por dedução (funções internas que manipulam e geram a chave).
Quem me dera ter desenvolvido um núcleo matemático como os 3 cabeças que criaram o RSA… que como você falou até com a publicação do código fica difícil descobrir a chave.
Respondendo a sua pergunta, foram chaves diferentes para cada codificação, não estou usando a mesma chave para os exemplos. Este agorítimo exige a presença da chave. São o resultado direto do algorítimo.
Já vi que é “snake oil”. O padding, que eu saiba, não é usado para “camuflar” nada. O IV não é “implementado para a chave”; ele é um parâmetro para o algoritmo.
Boa sorte, e espero boas vendas!
[quote=enantiomero][quote]
Para cada chave existe um salt aleatório, implementei um IV p/ a chave e para camuflar um padding em cada bloco.
[/quote]
Já vi que é “snake oil”. O padding, que eu saiba, não é usado para “camuflar” nada. O IV não é “implementado para a chave”; ele é um parâmetro para o algoritmo.
Boa sorte, e espero boas vendas! [/quote]
Cara eu não vou ficar debatendo com você!
se o código é INSEGURO como você diz, quebre o mesmo, descubra o desafio. SIMPLES…
Não posso achar uma curva cúbica com apenas um ponto. Preciso de 2 pontos para achar uma reta, de três para uma curva de segundo grau, e de quatro para uma curva cúbica. O que você está me pedindo é achar uma curva com apenas um ponto, e isso me recuso a fazer.
Ai eu te pergunto: “achar uma curva cúbica com apenas um ponto é possível?”
foda… mas acho q o Vinni consegue decifrar isto se tiver seu tempo a perder…
Olá pessoal!
Interessante o desafio, não sou nenhum expert mas olhando o post do “ozix” ele colocou os blocos invertido e sempre aparece no final “:” (dois pontos) ou “;” (ponto e virgula) indicando o inicio/fim de blocos de letras/palavras, outro detalhe é que quando a palavra começa com letra maíuscula a terminação/início não é com os símbolos de “pontos” caracteristica presente também nas letras acentuadas, posso estar enganado ou é realmente isso? :lol:
Até que fiquei curioso :), irei acompanhar o pessoal mais experiente na resolução…
Abraços
Mais uma dica
Desafio
Criptografado: ML7;\LJ:LN8;NMI:YN5:VQ79lL46mWG:sP5:LL9:MSG8uZ46nN6;nM=:mMI:OS5:lPH:NM6;ML9:mL;8rL46lYG6nO=6sN=7LN47lP47VZ67nNJ6OT=7mL47wNJ6MU67mL67xT<6mN46mL56nW56SL56rSI:\N=:nM9:SM8;SO7;sOI:YL=:PO98LM46VL7;XLI:mN=ILO6:LW5:XL6;mL5:WY49lLG6vM6FML78MVI6lNH8LNH7zL98=BP4
Descriptografado: ?
Mesmo desafio criptografado de novo
Criptografado: oKG6MQG7mS66lL59LK36kV86lK:8ML<8kM78kO57TX67lN59mW;9LN98NT:7oX78mX:9WL<7SY;8UK49lU8:
MN97vK:8tK59QL<:LV98wN56OM58nK:9RM::rL68tVE7NS86kY47uK77SLG7kV<:MK;6mX68YVI7mN::LK;6qL<9mLG7VM<:lS:9mK67l[<7PK;9kO87vK68KM<
7MS8:TUF9TK:8sVD8SS36kLH7rXH9lW59tM3:lV98pK87ON<7lKD:sK86{O:8MN96YV<9qK97lYG9xM69KO;9lM57nK97OWF7rL<:tNI7VNE9mOF7lLH7LK46SK78lL58=9B3
Descriptografado: ?
Não entendi esse post acima…
Quer dizer que toda vez que você manda “Encriptografar” (nem sei se existe essa palavra rs), ele vai gerar uma nova criptografia?
Cada vez que você digita um texto, ele eh “encriptografado” diferente?
(desculpe a minha ignorancia)
Não pedroroxd.
Ele está sempre gerando valores criptografados diferentes, pois em cada vez ele está usando uma chave diferente.
Dê uma estudada em criptografia de chave simétrica, dai vc entende oq ele tá fazendo. =)
E senhor java, o que todo mundo está falando é que o seu algoritmo é fraco matematicamente. Ninguém tá querendo desmerecer o seu trabalho. Só estão falando que se um criptógrafo de verdade resolvesse gastar um tempo com os seus resultados, muito rapidamente ele descobriria.
edit: corrigindo português
[quote]Não pedroroxd.
Ele está sempre gerando valores criptografados diferentes, pois em cada vez ele está usando uma chave diferente.
Dê uma estudada em criptografia de chave simétrica, dai vc entende oq ele tá fazendo. =)
E senhor java, o que todo mundo está falando é que o seu algoritmo é fraco matematicamente. Ninguém tá querendo desmerecer o seu trabalho. Só estão falando que se um criptógrafo de verdade resolvesse gastar um tempo com os seus resultados, muito rapidamente ele descobriria.
edit: corrigindo português[/quote]
clone, entendo o que você disse, matematicamente ele não é tão forte quando um RSA, na verdade ele é primo do DES (Data Encryption Standart) …
Sinceramente eu não acredito que um criptólogo encontraria o resultado facilmente.
Mais uma vez ressalto que a força de uma criptografia está principalmente no núcleo matemático onde mesmo conhecendo como é feito o cálculo sem as chaves seria quase que impossível chegar ao resultado, pois o tempo de cálculo seria inimaginavelmente grande (devido a limitações de processadores, por exemplo), o que inviabilizaria o processo.
Resolvi postar este artigo para discutir sobre o assunto, ninguém pode negar que é uma forma de estudar e divulgar o tema, ou seja, é um assunto pertinente ao fórum de java.
E para ver se tinham alguns programadores java que já tentaram desenvolver algum código próprio e ver se eles poderiam quebrar o código.
Vocês podem perguntar= “Porque tentar re-inventar a roda? Já não existem vários algorítimos seguros?”
Se todo mundo pensasse assim as técnicas e os processos nunca seriam aprimorados.
Além de saber como funciona eu quis por a mão na massa e fazer na prática.
Essa foi minha idéia.
Como tradicionalmente se diz se um algoritmo é seguro ou não:
-
Publicam-se o algoritmo e as teorias usadas para criá-lo, além de criar uma implementação de referência e uma coleção de vetores de teste;
-
Publicam-se também quais seriam eventuais vulnerabilidades se alguns parâmetros (como o tamanho de uma S-Box ou da própria chave) fossem reduzidos;
-
Outros criptógrafos tentam descobrir outras vulnerabilidades (você está pulando para a etapa 3 direto, sem passar pelas etapas 1 e 2.)
É assim que se faz. Publicar apenas algumas combinações “plaintext” / “ciphertext”, sem as chaves, não é suficiente.
Por favor, leia pelo menos o livro do Schneier, “Applied Cryptography”. Faça-nos este favor e volte depois.