示例#1
0
 def test_decipher(self):
     ''' AffineSubstitution (test_decipher): test known ciphertext->plaintext pairs '''
     text = 'pmjgdaxurolifczwtqnkhebyvspmjgdaxurolifczwtqnkhebyvs'
     declist = ['yfmtahovcjqxelszgnubipwdkryfmtahovcjqxelszgnubipwdkr',
                'onmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqp',
                'jarizqhypgxofwnevmdulctkbsjarizqhypgxofwnevmdulctkbs',
                'pmjgdaxurolifczwtqnkhebyvspmjgdaxurolifczwtqnkhebyvs',
                'tmfyrkdwpibungzslexqjcvohatmfyrkdwpibungzslexqjcvoha',
                'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz']
     for i,key in enumerate(((7,3),(3,25),(9,12),(1,0),(19,18),(23,15))):
         a,b = key
         dec = AffineSubstitution(a,b).decipher(text)
         self.assertEqual(dec.upper(), declist[i].upper())        
示例#2
0
 def test_encipher(self):
     ''' AffineSubstitution (test_encipher): test known plaintext->ciphertext pairs '''
     text = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
     enclist = ['hijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg',
                'dgjmpsvybehknqtwzcfiloruxadgjmpsvybehknqtwzcfiloruxa',
                'afkpuzejotydinsxchmrwbglqvafkpuzejotydinsxchmrwbglqv',
                'ovcjqxelszgnubipwdkryfmtahovcjqxelszgnubipwdkryfmtah',
                'sbktcludmvenwfoxgpyhqzirajsbktcludmvenwfoxgpyhqziraj',
                'pmjgdaxurolifczwtqnkhebyvspmjgdaxurolifczwtqnkhebyvs']
     for i,key in enumerate(((1,7),(3,3),(5,0),(7,14),(9,18),(23,15))):
         a,b = key
         enc = AffineSubstitution(a,b).encipher(text)
         self.assertEqual(enc.upper(), enclist[i].upper())