9、古典密码学与密码数学基础

古典密码学与密码数学基础

1. Hill 2x2 密码

1.1 密码原理

Hill 2x2 密码是基于线性代数的多表替换密码,由 Lester S. Hill 在 1929 年发明。它使用矩阵和矩阵乘法来混合明文以生成密文。理解该密码需要熟悉数论知识。

1.2 示例

  • 密钥:HILL,对应数字 7, 8, 11, 11
  • 明文:SECRETMESSAG
  • 密文:CIUBYTMUKGWO

1.3 Python 实现

import sys
import numpy as np

def cipher_encryption(plain, key):
    # if message length is an odd number, place a zero at the end.
    len_chk = 0
    if len(plain) % 2 != 0:
        plain += "0"
        len_chk = 1

    # msg to matrices
    row = 2
    col = int(len(plain)/2)
    msg2d = np.zeros((row, col), dtype=int)

    itr1 = 0
    itr2 = 0
    for i in range(len(plain)):
        if i%2 == 0:
            msg2d[0][itr1]= int(ord(
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值