zoukankan      html  css  js  c++  java
  • hill小记

    今天西南民大的老哥,发我一道i春秋上的题,题目名字over the hill,然后就有了这篇,也是第一篇。

    先介绍一下hill,Hill 密码是一种多字母代替密码。Hill 密码要求首先将明文分成同等规模的若干个分组(最后一个分组不足时需要填充),每一个分组被整体加密变换,即 Hill 密码属于分组加密

    加密过程~!

    先将26个英文字母用0-25进行编号。


    下面用两个题,来介绍两个师傅的脚本。

    一、安恒杯的一道月赛--爬坡道

    经过一系列操作,步骤省略,得到最重要的内容

    矩阵:

    3   1

    2   1

    密文:

    mttpjbpexfdzcegtdzeanutg

    这里贴一个师傅的脚本,c语言版。

    链接:https://pan.baidu.com/s/1WjzDJaSHGB2JmA79VLfHQQ

    提取码:1f3g

    二、i春秋--over the hill

    下面是师傅的脚本

     1 import numpy
     2 
     3 from sage.all import *
     4 
     5 alphabet = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789_{}")
     6 
     7 n = len(alphabet)
     8 
     9 Zn = IntegerModRing(n)
    10 
    11 secret  = [[54, 53, 28, 20, 54, 15, 12, 7],
    12 
    13           [32, 14, 24, 5, 63, 12, 50, 52],
    14 
    15           [63, 59, 40, 18, 55, 33, 17, 3],
    16 
    17           [63, 34, 5, 4, 56, 10, 53, 16],
    18 
    19           [35, 43, 45, 53, 12, 42, 35, 37],
    20 
    21           [20, 59, 42, 10, 46, 56, 12, 61],
    22 
    23           [26, 39, 27, 59, 44, 54, 23, 56],
    24 
    25           [32, 31, 56, 47, 31, 2, 29, 41]]
    26 
    27 secret = matrix(Zn, secret).inverse()
    28 
    29 ciphertext = "7Nv7}dI9hD9qGmP}CR_5wJDdkj4CKxd45rko1cj51DpHPnNDb__EXDotSRCP8ZCQ"
    30 
    31 blocks = [ciphertext[i : i + secret.ncols()] for i in range(0, len(ciphertext), secret.ncols())]
    32 
    33 plaintext = ''
    34 
    35 for block in blocks:
    36 
    37     decrypted_block = secret * matrix(Zn, [alphabet.find(c) for c in block]).transpose()
    38 
    39     plaintext +=  ''.join(alphabet[int(i[0])] for i in decrypted_block)
    40 
    41  
    42 
    43 print plaintext
    View Code

    在线运行网站:http://sagecell.sagemath.org/

    到这里就结束了,脚本都是师傅们的,很惭愧,共勉吧。

    over

  • 相关阅读:
    Jboss/Wildfly安装配置
    Ubuntu上安装谷歌第二代机器学习系统TensorFlow
    (转)Apache重写规则的常见应用(rewrite)
    (转)Apache Rewrite 详解
    (转)Apache Rewrite 详解
    Jetty安装配置
    linux命令crontab
    php使用CI发送qq和163邮件
    php时间类
    phpcurl类
  • 原文地址:https://www.cnblogs.com/BuFFERer/p/12274445.html
Copyright © 2011-2022 走看看