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

栅栏密码

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

例:

学习笔记-CTF密码相关的更多相关文章

  1. DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析

    DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析 彭会锋 本篇主要针对不太熟悉的TZ 故障捕获 和 DB 死区产生两个子模块进行学习研究 感觉TI的寄存器命名还是有一定规律可循的 SEL ...

  2. 学习笔记之html5相关内容

    写一下昨天学习的html5的相关内容,首先谈下初次接触html5的感受.以前总是听说html5是如何的强大,如何的将要改变世界.总是充满了神秘感.首先来谈一下我接触的第一个属性是  input的里面的 ...

  3. rails学习笔记: rake db 相关命令

    rails学习笔记: rake db 命令行 rake db:*****script/generate model task name:string priority:integer script/g ...

  4. TSPL学习笔记(4):数组相关练习

    最近研究函数式编程,都是haskell和scheme交互着看的,所以笔记中两种语言的内容都有,练习一般也都用两种语言分别实现. 本篇练习一些数组有关的问题,之所以与数组相关是因为在命令式编程中以下问题 ...

  5. Linux学习笔记之Linux相关知识

    [想成为某一方面的大神,没有捷径可走,只能不断的记录.练习.总结.coding……] notes:主要从网上摘录了一些关于Linux的历史以及一些相关内容,以便对Linux系统有一定的了解.这不但可以 ...

  6. Struts 2学习笔记——拦截器相关

    一.添加国际化支持 默认的struts-deault.xml文件中已经定义了国际化拦截器,内容如下 <!-定义国际化拦截器--> <interceptor name="i1 ...

  7. python学习笔记六 面向对象相关下(基础篇)

    面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以将多函数中公用的变量封装到对象中) 对象,根据模板创建的 ...

  8. Python学习笔记——与爬虫相关的网络知识

    1 关于URL URL(Uniform / Universal Resource Locator):统一资源定位符,用于完整地描述Internet上网页和其他资源的地址的一种标识方法 URL是爬虫的入 ...

  9. linux学习笔记一----------文件相关操作

    一.目录结构 二.文件管理操作命令(有关文件夹操作,使用Tab键自动补全文件名(如果多个默认第一个)) 1.ls 查看目录信息:ls -l 查看目录详细信息(等价于ll 某些系统不支持) 2.pwd ...

随机推荐

  1. 8.MSFvenom

    Meterpreter 01 Meterpreter API调用 Meterpreter提供了多种APl调用,在编写自己的脚本时可以使用这些API来提供额外功能或定制功能. 关于ruby的更多信息,请 ...

  2. A - Jessica's Reading Problem POJ - 3320 尺取

    A - Jessica's Reading Problem POJ - 3320 Jessica's a very lovely girl wooed by lots of boys. Recentl ...

  3. 简单记录下springboot+jms+activemq

    1. 安装ActiveMQ 到Apache官方网站下载最新的ActiveMQ的安装包,并解压到本地目录下后运行 2. pom.xml引入  springboot配置文件中填写相关配置 3.创建生产者 ...

  4. DALI 48V驱动

    DALI-CC-30W-48V技术手册 产品名称:DALI-CC-30W-48V 支持协议:IEC 62386-101:2018,IEC 62386-102:2018,IEC 62386-207:20 ...

  5. 数据库学习 day2 检索数据

    上一节我们介绍了什么是数据库,以及一些基本的数据库术语 这一课介绍使用SELECT语句从表中检索一个或多个数据列. 关键字(Keyword) 作为SQL组成部分的保留字.关键字不能用作表和列的名字(类 ...

  6. Linux配置dhcp服务器

    一.安装dhcp软件 yum -y install dhcp 二.配置 dhcp 主配置文件 /etc/dhcp/dhcpd.conf ns-update-style interim; log-fac ...

  7. 切片-list、字符串

    切片-list.字符串   1.字符串,切片顾头不顾尾 s="123455" print(s[0:3])  结果:123 2.list d=[12,34,45] print(d[: ...

  8. CDR

    伴随着新经济.独角兽一同被热议的,中国将很快推出存托凭证迎接独角兽回归.中国存托凭证(CDR)已成为当下热门话题.说不清CDR,还能和小伙伴们愉快地聊天吗? CDR到底是什么?它具有哪些优势?能否带来 ...

  9. "段落"组件:<p> —— 快应用组件库H-UI

     <import name="p" src="../Common/ui/h-ui/text/c_p"></import> <te ...

  10. 超详细Go语言源码目录说明

    开源项目「go home」聚焦Go语言技术栈与面试题,以协助Gopher登上更大的舞台,欢迎go home~ 导读 学习Go语言源码的第一步就是了解先了解它的目录结构,你对它的源码目录了解多少呢?今天 ...