Escolar Documentos
Profissional Documentos
Cultura Documentos
Abstract— This work will present the main encryption algo- representação de um número inteiro n = a0 a1 a2 ...ak para a
rithm of the PASME tool, PASME allows encrypt and hide base b consiste em realizar a operação descrita na equação 1
information in various types of files. The algorithm uses the
fact that factoring large numbers is a difficult issue in terms
of computational performing to make the main steps of the T (n, b) = a0 bk + a1 bk−1 + ... + ak b0 (1)
encryption.
A função ∓ descrita em 2 é uma mudança de base onde a
Resumo— Neste trabalho será apresentado o principal algo-
ritmo de criptografia da ferramenta PASME, a qual permite cada digito é adicionado um ”lixo”.
encriptação e ocultamento de informações em diversos tipos de
arquivos. O algoritmo utiliza o fato da fatoração de números
grandes ser um problema difı́cil do ponto de vista computacional, ∓(n, b, v) = (a0 +c0 )b1 +(a1 +c1 )b2 +...+(ak +ck )bk+1 (2)
arXiv:1101.0827v1 [cs.CR] 4 Jan 2011
B. Desencriptando uma mensagem Na implementação [1], cada simbolo (digito num número)
Para desencriptar uma mensagem, é preciso que sejam tem 1 byte (8 bits) de comprimento.
fornecidos os números Ki (i = 1...5), P e X, além da frase- A implementação [1] armazena em um arquivo-alvo as
chave key. informações públicas geradas pelo algoritmo III e a mensagem
O primeiro passo da desencriptação é a validação da X gerada pelo procedimento anterior.
chave, para realizar essa operação, gera-se o número W ′ = Para ocultar informações em arquivos, [1] primeiramente
∓(key, K3 , K2 ) + K1 e é verificado se P mod W ′ = K4 . verifica o tamanho, em bytes, da informação que será ocultada.
Efetuada a validação, pode-se recuperar Q = (P − K4 )/W ′ . Após isso, a informação é concatenada ao arquivo e, por fim,
Com Q recuperado, a mensagem n ocultada em X poderá concatena-se o tamanho da informação (em [1], um inteiro
ser revelada. Para revelar a mensagem n, gera-se o número com 4 bytes de comprimento). O procedimento para recuperar
Y = X xor Q e o procedimento descrito a seguir tem de ser a informação é semelhante, só que, primeiramente, recupera-
efetuado. se o tamanho L (em [1], os 4 últimos bytes do arquivo) da
informação que está oculta, depois recua-se L−4 bytes a partir
1) X ′ = ∅, X ′ é uma palavra vazia
do fim do arquivo, no caso de [1], e armazena-se os L bytes
2) Enquanto Y 6= 0:
seguintes em um arquivo-alvo.
a) a ← Y mod K3 A interface gráfica da implementação [1] foi criada
b) Y ← Y − a utilizando-se o framework QT4 [5].
c) Y ← Y /K3 , efetua-se a divisão inteira de Y por
K3 .
V. C ONCLUS ÕES
d) a ← a − K5
e) X ′ ← X ′ ⊕ a, ⊕ é a operação de concatenação, ou Este trabalho apresentou um algoritmo de encriptação que
seja, a união de duas palavras (por exemplo,33 ⊕ usa o fato da mesma informação ter significados distintos
5 = 335). dependendo da base em que está representada e de, atualmente,
certos problemas em teoria dos números serem intratáveis.
3) X ′ é a mensagem desencriptada
Tal algoritmo faz parte da ferramenta PASME que permite
a encriptação e ocultamento da informação em arquivos nos
IV. C OMENT ÁRIOS SOBRE A IMPLEMENTAÇ ÃO DE PASME mais diversos formatos.
DISPON ÍVEL EM [1]
Em [1] está disponı́vel uma implementação do algoritmo VI. AGRADECIMENTOS
de criptografia descrito na seção III. Essa implementação O autor agradece a Diego Aranha por apontar uma falha
utiliza a biblioteca GMP [4] para realizar as operações no algoritmo inicial, a João Augusto Palmitesta Neto por
envolvendo inteiros presentes no algoritmo PASME. Como sugestões e testes na implemtentação [1] do algoritmo e Fabio
a ferramenta [1] permite encriptar arquivos com tamanho Lobato por revisar o artigo.
variáveis, usar o algoritmo PASME nem sempre é uma boa
escolha, já que dependendo do tamanho da mensagem o tempo
R EFERENCES
de execução pode ser alto. Então, por questões de eficiência, a
implementação [1] utiliza o processo de encriptação de dois [1] “Projeto pasme,” http://sourceforge.net/projects/pasme/.
[2] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Algoritmos.
passos descrito a seguir para encriptar uma mensagem n. Editora Campus, 2002.
1) Gera-se uma folha-chave f c com um tamanho de L(f c) [3] L. Lovász, J. Pelikán, and K. Vesztergombi, Matemática Discreta. So-
ciedade Brasileira de Matemática, 2003.
bytes. [4] “The gnu multiple precision arithmetic library,” http://gmplib.org/.
2) Cria-se aleatoriamente uma frase-chave key com L(key) [5] “qt - cross platform and ui framework,” http://qt.nokia.com/.
bytes de tamanho.
3) Utiliza-se o algoritmo descrito em III para encriptar a
folha-chave f c.
4) Quebra-se a mensagem n em L(n) bytes,
5) i ← 0
6) k ← 0
7) X ← ∅
8) Enquanto i ≤ L(n):
a) X ← X ⊕ (ni xor f ck ), ni é i-ésimo byte da
mensagem n e f ck é o k-ésimo byte da folha-chave
f c.
b) i ← i + 1
c) k ← (k + 1) mod L(f c)
Para desencriptar, o passo (1) do algoritmo anterior não
é executado, no passo (2) é fornecido a frase-chave que
”abre”a mensagem e no passo (3) é chamado o algoritmo de
desencriptação descrito em III.