zoukankan      html  css  js  c++  java
  • 学习笔记-CTF密码相关

    RSA共模攻击

    RSA基本原理

    ①  选择两个大的质数p和q,N=pq;

    ②  根据欧拉函数,求得r=(p-1)(q-1);

    ③  选一个小于r的整数e,求得e关于模r的模反元素d;

    ④  将p和q的记录销毁;

    ⑤  公钥为(N,e),私钥为(N,d)

    加密:

    将消息转换为小于N的整数n,

    通过n^e≡c(mod N)

    得到密文c

    解密:

    通过c^d≡n(mod N)

    将密文c变为原文n

    共模攻击原理:

    当N相同时,找到两个互质的e,在已知N、c1、c2、e1、e2的情况下,

    c1=m^e1%N

    c2=m^e2%N

    可通过公式e1s1+e2s2=1,解得s1和s2两个整数

    最终得到c1^s1*c2^s2=m

    凯撒密码

    加密:

    En(x)=(x+n) mod 26

    解密:

    Dn(x)=(x-n) mod 26

    其中偏移量n为大于等于1小于26的整数

    原理:明文中的所有字母按照偏移量n偏移后被替换为密文。

    维吉尼亚密码

    ——古典密码中需要密钥的密码

    加密:

    Ci≡Pi+Ki(mod 26)

    解密:

    Pi≡Ci-Ki(mod 26)

    其中K为密钥

    维吉尼亚密码表:

    猪圈密码

     两种加解密方式

    一:图形和字母变换

    例:

    二:左右一一对应变换

     Python脚本实现:

    import sys
    
    def pigpen_chiper(letter):
        a = "abcdefghistuv"
        b = "jklmnopqrwxyz"
        if letter.isalpha():
            if letter in a:
                n = a.find(letter)
                pig = b[n]
            else:
                n = b.find(letter)
                pig = a[n]
            return pig
        else:
            return letter
    
    def pigpen(word):
        """
         pigpen chiper
        """
        res = ''
        for letter in word:
            res += pigpen_chiper(letter)
        return res
    
    if __name__ == '__main__':
        if len(sys.argv) != 2:
            print "Pigpen_chiper decode 猪圈密码解密器v1.0 BY 0h1in9e"
            print "Usage: "+sys.argv[0]+" 'ocjp{zkii}'"
        else:
            print pigpen(sys.argv[1])

    AAencode

    扩展:ppencode/rrencode/jjencode

    参考URL:https://www.cnblogs.com/android-html5/archive/2011/02/09/2533784.html

    Rabbit密码

    一种流密码

    在线加解密URL:http://www.sojson.com/encrypt_rabbit.html

    栅栏密码

    原理:①将要传递的信息交替排成上下两行;②将下面一行字母排在上面一行后边形成密文。

    例:

  • 相关阅读:
    C++ 练习02 魔术师发牌问题
    C++ 入门2 类型转换
    C++ 入门1 C++简介
    一个简单计算器的实现
    C++练习01 打印杨辉三角
    数据结构01数据结构基础01
    Lesson_7 作业_1 Driver 和 Car
    Caterl Java寒假基础练习题(一) 循环相加
    Lesson_9 上课笔记 多态
    Lesson_10 作业计算工资
  • 原文地址:https://www.cnblogs.com/Dio-Hch/p/12745628.html
Copyright © 2011-2022 走看看