Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Mok-Kong Shen Newsgroups: comp.lang.python.announce Subject: ANN: HOMOPHONE-SP Date: Fri, 16 Jun 2017 23:20:49 +0200 Organization: albasani.net Lines: 15 Approved: python-announce-list@python.org Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de OkbBgNnf9ewrO+xPtTLn2ABVlaly87p5TQH9XJIfsIAQ== Cancel-Lock: sha1:q7uMo128tB0hZmBjjeNZAjzb8Aw= Return-Path: X-Original-To: python-announce@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.017 X-Spam-Evidence: '*H*': 0.97; '*S*': 0.00; 'extent': 0.05; 'processing.': 0.07; 'subject:ANN': 0.07; 'python': 0.09; 'naturally': 0.09; 'substitution': 0.09; 'obviously': 0.14; 'chained': 0.16; 'mappings.': 0.16; 'received:eu': 0.16; '(in': 0.16; 'header:X-Complaints-To:1': 0.23; 'written': 0.26; 'header :User-Agent:1': 0.26; 'performing': 0.27; 'idea': 0.29; 'code': 0.30; 'could': 0.33; 'combination': 0.33; 'manual': 0.34; 'instead': 0.35; 'subject:: ': 0.36; 'subject:-': 0.38; 'received:io': 0.39; 'received:psf.io': 0.39; 'received:ams1.psf.io': 0.40; 'received:mail1.ams1.psf.io': 0.40; 'employing': 0.66; 'frequency': 0.66; 'obtaining': 0.66; 'to:addr :comp-lang-python-announce': 0.66; 'analysis': 0.73; 'to:addr:moderators.isc.org': 0.76; 'hand': 0.82 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 X-Mozilla-News-Host: news://news.albasani.net:119 X-Mailman-Approved-At: Sat, 17 Jun 2017 16:10:44 -0400 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.24 Precedence: list List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: Xref: csiph.com comp.lang.python.announce:2536 In classical crypto, homophonic substitution attempts to mitigate risks of frequency analysis via employing one-to-many mappings of plaintext characters to ciphertext characters instead of one-to-one mappings. However, constraints of manual processing naturally very severely limit the extent to which the flattening of the frequency distributions of the ciphertext characters could be achieved, which obviously is on the other hand a non-issue for computer processing. I have written a Python code HOMOPHONE-SP for performing homophonic substitution (in combination with transpositions) where, for obtaining higher security, the processing of the individual plaintext characters is chained via borrowing an idea from modern block ciphers. The software is available at http://mok-kong-shen.de M. K. Shen