{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/unsupervised-cipher-cracking-using-discrete","title":"Unsupervised Cipher Cracking Using Discrete GANs","arxiv_id":"1801.04883","date":"2018-01-15","proceeding":"ICLR 2018 1","authors":["Aidan N. Gomez","Sicong Huang","Ivan Zhang","Bryan M. Li","Muhammad Osama","Lukasz Kaiser"],"abstract":"This work details CipherGAN, an architecture inspired by CycleGAN used for\ninferring the underlying cipher mapping given banks of unpaired ciphertext and\nplaintext. We demonstrate that CipherGAN is capable of cracking language data\nenciphered using shift and Vigenere ciphers to a high degree of fidelity and\nfor vocabularies much larger than previously achieved. We present how CycleGAN\ncan be made compatible with discrete data and train in a stable way. We then\nprove that the technique used in CipherGAN avoids the common problem of\nuninformative discrimination associated with GANs applied to discrete data.","url_abs":"http://arxiv.org/abs/1801.04883v1","url_pdf":"http://arxiv.org/pdf/1801.04883v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"unsupervised-cipher-cracking-using-discrete","repo_url":"https://github.com/for-ai/ciphergan","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":null}],"tasks":[],"methods":[{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"cycle-consistency-loss","method_name":"Cycle Consistency Loss"},{"method_slug":"gan-least-squares-loss","method_name":"GAN Least Squares Loss"},{"method_slug":"instance-normalization","method_name":"Instance Normalization"},{"method_slug":"patchgan","method_name":"PatchGAN"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-block","method_name":"Residual Block"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1801.04883","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}