分组密码总结-DES,AES,SM4

简介

分组密码属于对称密码的一种,其特点是加解密都是对明文/密文进行分组后逐组进行加解密。通俗讲就是将明文分块,然后分块加密,解密同理。

分组密码的基本原理:

  1. 代换:明文分组到密文分组的可逆变换
  2. 扩散:将明文的统计特性散布到密文中去,使得明文的每一位影响密文中多位的值
  3. 混淆:使密文和密钥之间的统计关系变得尽可能复杂,使攻击者无法得到密钥,通常使用复杂的代换算法实现
阅读全文

汇编语言学习笔记

在读《汇编语言》这本书学习汇编语言的时候,在此对每一章的要点进行总结和记录,以便日后复习与查看。

练习环境:Windows 2000 Professional,与书中程序运行环境一致。

第一章 基础知识

汇编语言是一门直接在硬件之上工作的编程语言。由于早期人们使用机器语言(一串二进制数字)进行编程存在不易纠错、晦涩难懂的缺点,所以发明了汇编语言来帮助程序员更高效的编程。汇编语言经编译连接之后可以直接形成由机器指令构成的程序,可以直接被CPU执行。而不同型号的CPU拥有不同的指令集,所以汇编语句对应的机器码可能不尽相同。这本书的汇编语言是基于8086CPU的指令集来进行描述的。

汇编语言包括三个部分:

  1. 汇编指令(核心部分):机器码的助记符,有对应的机器码
  2. 伪指令:由编译器执行,没有对应的机器码,计算机本身并不执行
  3. 其他符号:如+-*/等,由编译器识别,没有对应机器码

汇编语言的指令和数据信息存放在存储器(内存)中。在内存中指令和数据并没有任何区别,本质上都是二进制信息。而决定一段二进制信息是指令还是数据,则由CPU工作时决定。存储器由若干个存储单元构成,单个存储单元的最小单位是字节(Byte,1Byte=8Bit)。

阅读全文

Git初探

昨天花了两个小时,把廖雪峰老师的Git教程看了一遍,然后再根据网上的一些资料,对Git的一些概念和常用命令做一个归纳。

Git是什么?

Git是一个开源的分布式版本管理系统,由Linux之父Linus开发。相比于其他集中式版本管理系统(如SVN、CVS)将整个项目的抓取和提交过程集中在一台中心服务器中,Git中对项目提交修改的每一个开发者都具有一套完整的项目版本库,中心服务器也不再是项目开发的必须项(为了方便提交,很多时候依然会为Git设置中心服务器),开发者在本地对项目进行修改和开发,并将修改提交给其他开发者,其他开发者也各自将自己做的修改提交给其他人,这样就实现了实时的版本管理和修改提交。

常见的应用了Git的网站有GithubGiteeGitlab等,它们为开源项目提供免费的Git存储,开发团队可以使用它们来实现版本管理和团队协作。

阅读全文

DVWA练习记录(三)

相关文章:DVWA练习记录(一)DVWA练习记录(二)

SQL Injection(Blind)(SQL盲注)

SQL盲注与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是否执行都无从得知,因此盲注的难度要比一般注入高。目前网络上现存的SQL注入漏洞大多是SQL盲注。

这篇文章总结了常见的SQL盲注场景:

  1. 提交一个导致SQL查询无效时,会返回一个通用错误页面,提交正确则会返回一个内容可被适度控制的页面。
  2. 提交一个导致SQL查询无效时,会返回一个通用错误页面,提交正确则会返回一个内容不可控的页面。
  3. 提交受损或不正确的SQL既不会产生错误页面,也不会以任何方式影响页面输出。
阅读全文

DVWA练习记录(二)

相关文章:DVWA练习记录(一)DVWA练习记录(三)

Brute Force(暴力破解)

暴力破解指的是黑客使用穷举法猜解出用户口令,是最为广泛使用的手法之一。在很多情况下,用户会使用不安全的、很容易被猜解的密码,使得这种攻击变得可能。为了提高猜解的成功率,黑客往往还会与社会工程学结合,从不同渠道获取用户的相关信息,如生日、姓名等可能用来作为密码的信息,再基于这些信息构建字典,将其任意组合对密码进行猜解。

理论上说,若网站对口令输入的尝试次数为无限的话,使用穷举法猜解密码总能够成功。所以需要网站进行一定的限制,如多次输入错误限制输入等。

阅读全文

DVWA练习记录(一)

相关文章:DVWA练习记录(二)DVWA练习记录(三)

简介

Damn Vulnerable Web Application (DVWA) is a PHP/MySQL web application that is damn vulnerable. Its main goal is to be an aid for security professionals to test their skills and tools in a legal environment, help web developers better understand the processes of securing web applications and to aid both students & teachers to learn about web application security in a controlled class room environment.The aim of DVWA is to practice some of the most common web vulnerabilities, with various levels of difficultly, with a simple straightforward interface.
DVWA是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用程序。其主要目标是帮助安全专业人员在合法的环境中测试他们的技能和工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助学生和教师学习Web应用程序安全性。DVWA的目的是通过一个简单易用的界面从不同的难易程度来体现一些最常见的Web漏洞。

阅读全文

有关多项式的算法——四则运算、求逆

算法介绍

多项式的运算可以说比之前的多精度数运算还要简单一点,因为多项式的加减只能存在于同次数的项之间,所以不需要考虑加减法里面的进位退位问题,这也就使得乘除法简单了很多。

加减法的原理就没什么好说的了,乘除法都是基于多精度数的算法修改的,存储多项式也使用了ArrayList,索引值对应项的次数,其元素大小对应项的系数。

阅读全文

J.Craig Venter DNA水印解密

上选修课的时候,老师讲到了合成生物学,提到了有关DNA编码的技术,于是就讲了J.Craig Venter团队把水印编码进DNA的事情。

下面是我在Google上面搜集到的资料:

Researchers at the J Craig Venter Institute recently unveiled their first self-replicating synthetic bacteria (M. mycoides JCVI-syn1.0) whose DNA was ‘programmed’ base pair by base pair. To verify that they had synthesized a new organism and not assembled the DNA from another natural bacteria, scientists encoded a series of ‘watermarks’ into the genes of M. mycoides JCVI-syn1.0. There are four of these hidden messages: an explanation of the coding system used, a URL address for those who crack the code to go visit, a list of 46 authors and contributors, and a series of famous quotes. The presence of these watermarks verifies that M. mycoides JCVI-syn1.0 truly is synthetic and demonstrates the precision and power of JCVI’s new techniques in synthetic biology.

J Craig Venter研究所的研究人员最近揭开了他们的第一批自我复制的合成细菌(M. mycoides JCVI-syn1.0)的细菌,其DNA被碱基对“编程”为碱基对。为了验证他们合成了一种新生物并且没有从另一种天然细菌中组装DNA,科学家们将一系列“水印”编码到了蕈状支原体JCVI-syn1.0的基因中。这些隐藏的消息中有四种:对使用的编码系统的解释,破解该代码的人员的URL地址,46位作者和贡献者的列表以及一系列著名的名言。这些水印的存在验证了M. mycoides JCVI-syn1.0 真正是合成的,并证明了JCVI合成生物学新技术的精确性和功能。
————摘自SingularityHub

阅读全文