´ EMPREGO DE GRAMATICAS LIVRES DE CONTEXTO PARA ˜ ´ A CONSTRUC¸AO DE UM ALGORITMO CRIPTOGRAFICO Jo˜ao Felipe Pontes Faria Projeto de Gradua¸c˜ao apresentado ao Curso de Engenharia Eletrˆonica e de Computa¸ca˜o da Escola Polit´ecnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necess´arios `a obten¸c˜ao do t´ıtulo de Enge- nheiro. Orientador: Fl´avio Luis de Mello Rio de Janeiro Abril de 2016 UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit´ecnica - Departamento de Eletrˆonica e de Computa¸ca˜o Centro de Tecnologia, bloco H, sala H-217, Cidade Universita´ria Rio de Janeiro - RJ CEP 21949-900 Este exemplar ´e de propriedade da Universidade Federal do Rio de Janeiro, que poder´ainclu´ı-loembasededados, armazenaremcomputador, microfilmarouadotar qualquer forma de arquivamento. ´ E permitida a men¸c˜ao, reprodu¸ca˜o parcial ou integral e a transmiss˜ao entre bibli- otecas deste trabalho, sem modifica¸ca˜o de seu texto, em qualquer meio que esteja ou venha a ser fixado, para pesquisa acadˆemica, comenta´rios e cita¸co˜es, desde que sem finalidade comercial e que seja feita a referˆencia bibliogr´afica completa. Os conceitos expressos neste trabalho s˜ao de responsabilidade do(s) autor(es). iii DEDICATO´RIA A todos os gigantes, c´elebres ou anˆonimos, que humildemente oferecem seus om- bros aos aprendizes. iv AGRADECIMENTO Agrade¸co primeiramente ao povo brasileiro que contribuiu de forma significativa `a minha forma¸c˜ao e estada nesta Universidade. Este projeto ´e uma pequena forma de retribuir o investimento e confian¸ca em mim depositados. Gostaria tamb´em de agradecer a Daniela, minha amada e minha musa, que me apoiouemotivounarealiza¸c˜aodestetrabalhoenaconclus˜aodestaetapaacadˆemica; meuspaisNelsoneAndr´eaquetamb´emsempreestiveramaomeuladoemeapoiando em minhas escolhas e conquistas; meus avo´s Rita e Ismael que sempre me incenti- varam em todos os meus desafios; minha avo´ Nathalia que sempre me apoiou; meus irm˜aos, todos os meus tios, primos e agregados, que sempre me proporcionaram um ambiente familiar acolhedor, estimulante e incentivador, especialmente a Titita, entre outros tantos que n˜ao haveria espa¸co para citar um a um. Meu muito obrigado ao professor Fl´avio Mello, que me apresentou este assunto interessant´ıssimo e aceitou me orientar neste projeto, apesar do pouco tempo de que eu dispunha para me dedicar a ele, e sempre me tratou com total aten¸c˜ao e respeito; a todos os demais professores e orientadores (Cas´e, Seixas, Mauros, Augusto, Jomar, Henrik, Jos´e, Robert e muitos mais!), assim como os meus colegas, funcion´arios e amigos da UFRJ e da KTH, com quem estudei e trabalhei dentro ou fora de sala de aula e que trouxeram, cada um, informa¸c˜oes e experiˆencias fundamentais para a minha forma¸c˜ao. Sou grato tamb´em aos meus amigos, colegas e professores, do CAp-UFRJ que me proporcionaram uma prepara¸c˜ao para os desafios acadˆemicos e de vida, especial- mente ao Beto, cujos ensinamentos v¨ao muito al´em da F´ısica. v RESUMO Umalgoritmocriptogr´afico´econstru´ıdoempregandogram´aticaslivresdecontexto talquearepresenta¸ca˜ocriptogr´aficadosdadossejaumagram´aticaqueosrepresenta. Paradificultaroacessoindevidoaosdados,trechosdagram´aticacodificadacontendo s´ımbolos terminais s˜ao substitu´ıdos por s´ımbolos fict´ıcios que n˜ao fazem parte da gram´atica, e estes trechos substitu´ıdos formam a chave criptogr´afica do algoritmo. Para descriptografar os dados, a chave ´e utilizada para reconstruir a gram´atica que, em seguida, ´e utilizada para gerar os dados originais. Al´em de criptografar os dados, o algoritmo proposto alcan¸ca simultaneamente a sua compress˜ao, pois a abordagem utilizada em sua constru¸ca˜o ´e baseada no fato de que gram´aticas podem ser vistas como representac¸˜oes compactas dos dados que elas geram, caracter´ıstica esta explorada por algoritmos de compress˜ao de dados tomados como ponto de partida neste estudo. Uma avalia¸ca˜o emp´ırica mostra que, em m´edia, a sa´ıda do algoritmo criptogr´afico proposto ´e aprovada em 95 dentre 162 testes aplicados na bateria de testes es- tat´ısticos para aplica¸co˜es criptogr´aficas do NIST. Palavras-Chave: gram´aticas livres de contexto, criptografia, teoria da informa¸ca˜o. vi ABSTRACT A cryptographic algorithm is built employing context-free grammars such that the cryptographic representation of the data is a grammar that represents it. To make it hard to access the data without proper authorisation, segments of the coded grammar containing terminal symbols are substituted by dummy symbols that are not part of the grammar, and these substituted segments are used as the crypto- graphic key of the algorithm. To decrypt the data, the key is used to reconstruct the grammar so that it can be used to generate the original data. Beyond encrypting the data, the proposed algorithm achieves simultaneously its compression, as the approach used in its construction is based on the fact that gram- marscanbeseenascompactrepresentationsofthedataitgenerates, acharacteristic exploited by compression algorithms used as a starting point for this study. An empirical evaluation shows that, on average, the output of the proposed cryp- tographic algorithm passes 95 out of 162 tests from NIST’s statistical test suite for cryptography applications. Key-words: context-free grammars, cryptography, information theory. vii SIGLAS DAG - Direct acyclic graph DSA - Digital Signature Algorithm E/S - Entrada/sa´ıda FPGA - Field-programmable gate array HEVC - High-Efficiency Video Coding IED - Interactive Encoding and Decoding LCA - Lowest common ancestor LZ - Lempel-Ziv LZMA - Lempel-Ziv-Markov chain algorithm LZW - Lempel-Ziv-Welch NIST - National Institute of Standards and Technology NP - Non-deterministic polynomial PPM - Prediction by partial matching RGB - Red, green, and blue RSA - Rivest-Shamir-Adleman SLT - Static lookup table STS - Statistical Test Suite viii XML - Extensible Markup Language ix Sum´ario 1 Introdu¸c˜ao 1 1.1 Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Delimita¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.6 Descri¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Gram´aticas e Criptografia 6 2.1 Esteganografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Autentica¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Gram´aticas e Compress˜ao 11 3.1 Gram´aticas admiss´ıveis . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Transformadas de gram´atica . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.1 Transformada gulosa . . . . . . . . . . . . . . . . . . . . . . . 23 3.2.2 Transformada condicional de casamento de padr˜oes multin´ıvel 26 3.3 Trabalhos posteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3.1 Indiretamente ligados aos c´odigos baseados em gram´aticas . . 30 3.3.2 C´odigos baseados em gram´aticas e suas aplica¸co˜es diretas . . . 33 4 Um novo algoritmo criptogr´afico 50 4.1 S´ımbolo de partida . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.2 Regras de Produ¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.3 S´ımbolos terminais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.4 Avalia¸ca˜o emp´ırica do algoritmo proposto . . . . . . . . . . . . . . . 55 x
Description: