加密学教程(Cryptography Tuturials)

太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

Cryptography Tutorials - Herong's Tutorial Notes
Version 4.00
Dr. Herong Yang
Copyright © 1998 - 2007 by Dr. Herong Yang. All rights reserved.

Table of Contents

About This Book

Terminology

  • Cryptography Terminology

Basic Concepts

  • Cryptography
  • Function
  • Encryption

Cipher - DES Algorithm

  • Block Cipher
  • DES (Data Encryption Standard) Cipher Algorithm
  • DES Key Schedule (Round Keys Generation) Algorithm
  • DES Decryption Algorithm

DES Algorithm - Illustrated with Java Programs

  • DESSubkeysTest.java - DES Key Schedule Algorithm Illustration
  • DESCipherTest.java - DES Cipher Algorithm Illustration

DES Algorithm - Java Implementation

  • CipherDES.java - A Simple Java Implementation of DES
  • Test Cases of DES Encryption and Decryption

DES Algorithm - Java JCE SUN Implementation

  • DES Java Implementation by Sun
  • Using DES Algorithm in JDK JCE Package
  • Test Cases of DES Encryption and Decryption
  • What Is PKCS5Padding?
  • JceSunDesPaddingTest.java - JCE DES Padding Testing Program

DES Algorithm - Operation Modes and JCE SUN Implementation

  • DES Encryption Operation Modes
  • What is ECB (Electronic CodeBook) Operation Mode?
  • What is CBC (Cipher Block Chaining) Operation Mode?
  • What is CFB (Cipher FeedBack) Operation Mode?
  • What is OFB (Output FeedBack) Operation Mode?

  • Sun Java Implementation of DES Operation Modes
  • JceSunDesOperationModeTest.java - JCE DES Operation Mode Testing Program
  • Test Cases of DES Operation Modes

DES Algorithm - Stream Cipher Modes and JCE SUN Implementation

  • DES in Stream Cipher Modes
  • CFB (Cipher FeedBack) Operation Mode as a Stream Cipher
  • OFB (Output FeedBack) Operation Mode as a Stream Cipher
  • Sun Java Implementation of DES Operation Modes
  • JceSunDesStreamCipherTest.java - JCE DES Stream Cipher Mode Testing Program
  • Test Cases of DES Stream Cipher Modes

DES Algorithm - PHP Implementation in mcrypt

  • mcrypt Library for PHP
  • mcrypt Encryption Functions
  • des_mcrypt_operation_mode_test.php - mcrypt Operation Mode Test PHP Script
  • Block Padding in mcrypt
  • Other PHP Implementations of DES Algorithm

JDK/JCE - Cipher for Encryption and Decryption

  • The Cipher Class
  • JceSecretCipher.java - Cipher with Secret Key
  • JcePublicCipher.java - Cipher with Private and Public Key Pair

Cipher - Blowfish Algorithm

  • Block Cipher
  • Blowfish Cipher Algorithm
  • Blowfish Key Schedule (Sub-Keys Generation) Algorithm
  • BlowfishJ - Java Implementation by Markus Hahn
  • Blowfish Decryption Algorithm
  • 8366 Hex Digits of PI

Message Digest - MD5 Algorithm

  • What is MD5?
  • MD5 Algorithm Overview
  • MD5 Implementation in Java
  • MD5 Implementation in PHP
  • MD5 Implementation in Perl

Message Digest - SHA1 Algorithm

  • What is SHA1?

  • SHA1 Algorithm Overview
  • SHA1 Implementation in Java
  • SHA1 Implementation in PHP
  • SHA1 Implementation in Perl

OpenSSL - Installation on Windows

  • What is OpenSSL?
  • Installing OpenSSL on Windows

OpenSSL - Generating RSA Private and Public Keys

  • What is RSA?

  • Generating RSA Key Pairs
  • Viewing Components of RSA Keys
  • Encrypting RSA Keys

OpenSSL - Generating Self-Signed Certificates

  • What is a certificate?

  • Generating Self-Signed Certificates
  • Viewing Components of Certificates

OpenSSL - Signing Certificates from Others

  • Why Certificates Need to Be Signed by CAs?
  • Generating a Certificate Signing Request for Your Own Public Key
  • Viewing Components of Certificate Signing Request
  • Signing a Certificate Signing Request

OpenSSL - Certification Path and Validation

  • What Is a Certification Path?
  • Certification Path Validation
  • Certification Path Testing with OpenSSL

keytool - JDK Tool to Manage Certificates Using 'keystore'

  • Certificates and Certificate Chains
  • What is "keystore"?
  • "keytool" - Key and Certificate Management Tool
  • "keytool" Example - Generating Key Pairs and Self-Signed Certificates
  • "keytool" Example - Exporting and Import Certificates
  • "keytool" Example - Cloning Certificates with New Identities

Using Certificates with Web Browsers

  • Why Using Certificates with Browser?
  • Exporting Certificates Out of Internet Explorer (IE)
  • Importing Certificates into IE
  • View Certificates in FireFox
  • Importing Certificates into FireFox

'OpenSSL' Signing CSR Generated by 'keytool'

  • Using "OpenSSL" to Act as a CA (Certificate Authority)
  • "OpenSSL" Generating CA's Private Key
  • "OpenSSL" Self-signing CA's Public Key Certificate
  • "keytool" Generating Maria's Private Key
  • "keytool" Generating Maria's CSR (Certificate Sign Request)
  • "OpenSSL" Signing Maria's CSR (Certificate Sign Request)
  • "keytool" Managing Serial Numbers when Signing CSR
  • "keytool" Importing CA's Certificate into Keystore Files
  • "keytool" Importing Maria's Own Certificate

Migrating Keys from 'keytool' to 'OpenSSL'

  • "keytool" Generating Private and Public Key Pair
  • "keytool" Exporting PrivateKeyEntry
  • "keytool" Printing Certificate Details
  • "OpenSSL" Viewing "keytool" Generated Certificates
  • DumpKey.java - Dumping Private Keys Out of "keystore"
  • "OpenSSL" Converting Keys from Binary to PEM
  • "OpenSSL" Viewing "keytool" Keys

Certificate Formats - X.509, DER and PEM

  • X.509 Certificate Standard
  • PEM (Privacy Enhanced Mail) Encoding
  • DER (Distinguished Encoding Rules) Encoding
  • "keytool" Exporting Certificates in DER and PEM
  • "OpenSSL" Verifying "keytool" Certificates
  • "OpenSSL" Generating Certificates in DER and PEM
  • "keytool" Viewing "OpenSSL" Certificates
  • "keytool" Importing "OpenSSL" Certificates

Key Formats PKCS#8 and PKCS#12 and Migration

  • What is PKCS#8?
  • What is PKCS#12?

  • "OpenSSL" Private Key in Traditional Format
  • "OpenSSL" Private Key in PKCS#8 Format
  • "OpenSSL" Key and Certificate in PKCS#12 Format
  • "keytool" Converting PKCS12 to JKS
  • Summary - Migrating "OpenSSL" Keys to "keytool"
  • Summary - Migrating "keytool" Keys to "OpenSSL"

References

Key Words: blowfish, CA, certificate, certification path, cipher, CSR, decryption, DER, DES, digest, encryption, Java, JCE, JDK, keytool, MD5, message, OpenSSL, PEM, PKCS#8, PKCS#12, private key, public key, RSA, secret key, self-signed certificate, SHA1, SSL, X.509

Cryptography Tutorials - Herong's Tutorial Notes
Version 4.00
Dr. Herong Yang
Copyright © 1998 - 2007 by Dr. Herong Yang. All rights reserved.

Table of Contents

About This Book

Terminology

  • Cryptography Terminology

Basic Concepts

  • Cryptography
  • Function
  • Encryption

Cipher - DES Algorithm

  • Block Cipher
  • DES (Data Encryption Standard) Cipher Algorithm
  • DES Key Schedule (Round Keys Generation) Algorithm
  • DES Decryption Algorithm

DES Algorithm - Illustrated with Java Programs

  • DESSubkeysTest.java - DES Key Schedule Algorithm Illustration
  • DESCipherTest.java - DES Cipher Algorithm Illustration

DES Algorithm - Java Implementation

  • CipherDES.java - A Simple Java Implementation of DES
  • Test Cases of DES Encryption and Decryption

DES Algorithm - Java JCE SUN Implementation

  • DES Java Implementation by Sun
  • Using DES Algorithm in JDK JCE Package
  • Test Cases of DES Encryption and Decryption
  • What Is PKCS5Padding?
  • JceSunDesPaddingTest.java - JCE DES Padding Testing Program

DES Algorithm - Operation Modes and JCE SUN Implementation

  • DES Encryption Operation Modes
  • What is ECB (Electronic CodeBook) Operation Mode?
  • What is CBC (Cipher Block Chaining) Operation Mode?
  • What is CFB (Cipher FeedBack) Operation Mode?
  • What is OFB (Output FeedBack) Operation Mode?
  • Sun Java Implementation of DES Operation Modes
  • JceSunDesOperationModeTest.java - JCE DES Operation Mode Testing Program
  • Test Cases of DES Operation Modes

DES Algorithm - Stream Cipher Modes and JCE SUN Implementation

  • DES in Stream Cipher Modes
  • CFB (Cipher FeedBack) Operation Mode as a Stream Cipher
  • OFB (Output FeedBack) Operation Mode as a Stream Cipher
  • Sun Java Implementation of DES Operation Modes
  • JceSunDesStreamCipherTest.java - JCE DES Stream Cipher Mode Testing Program
  • Test Cases of DES Stream Cipher Modes

DES Algorithm - PHP Implementation in mcrypt

  • mcrypt Library for PHP
  • mcrypt Encryption Functions
  • des_mcrypt_operation_mode_test.php - mcrypt Operation Mode Test PHP Script
  • Block Padding in mcrypt
  • Other PHP Implementations of DES Algorithm

JDK/JCE - Cipher for Encryption and Decryption

  • The Cipher Class
  • JceSecretCipher.java - Cipher with Secret Key
  • JcePublicCipher.java - Cipher with Private and Public Key Pair

Cipher - Blowfish Algorithm

  • Block Cipher
  • Blowfish Cipher Algorithm
  • Blowfish Key Schedule (Sub-Keys Generation) Algorithm
  • BlowfishJ - Java Implementation by Markus Hahn
  • Blowfish Decryption Algorithm
  • 8366 Hex Digits of PI

Message Digest - MD5 Algorithm

  • What is MD5?
  • MD5 Algorithm Overview
  • MD5 Implementation in Java
  • MD5 Implementation in PHP
  • MD5 Implementation in Perl

Message Digest - SHA1 Algorithm

  • What is SHA1?

  • SHA1 Algorithm Overview
  • SHA1 Implementation in Java
  • SHA1 Implementation in PHP
  • SHA1 Implementation in Perl

OpenSSL - Installation on Windows

  • What is OpenSSL?
  • Installing OpenSSL on Windows

OpenSSL - Generating RSA Private and Public Keys

  • What is RSA?
  • Generating RSA Key Pairs
  • Viewing Components of RSA Keys
  • Encrypting RSA Keys

OpenSSL - Generating Self-Signed Certificates

  • What is a certificate?
  • Generating Self-Signed Certificates
  • Viewing Components of Certificates

OpenSSL - Signing Certificates from Others

  • Why Certificates Need to Be Signed by CAs?

  • Generating a Certificate Signing Request for Your Own Public Key
  • Viewing Components of Certificate Signing Request
  • Signing a Certificate Signing Request

OpenSSL - Certification Path and Validation

  • What Is a Certification Path?

  • Certification Path Validation
  • Certification Path Testing with OpenSSL

keytool - JDK Tool to Manage Certificates Using 'keystore'

  • Certificates and Certificate Chains
  • What is "keystore"?

  • "keytool" - Key and Certificate Management Tool
  • "keytool" Example - Generating Key Pairs and Self-Signed Certificates
  • "keytool" Example - Exporting and Import Certificates
  • "keytool" Example - Cloning Certificates with New Identities

Using Certificates with Web Browsers

  • Why Using Certificates with Browser?
  • Exporting Certificates Out of Internet Explorer (IE)
  • Importing Certificates into IE
  • View Certificates in FireFox
  • Importing Certificates into FireFox

'OpenSSL' Signing CSR Generated by 'keytool'

  • Using "OpenSSL" to Act as a CA (Certificate Authority)
  • "OpenSSL" Generating CA's Private Key
  • "OpenSSL" Self-signing CA's Public Key Certificate
  • "keytool" Generating Maria's Private Key
  • "keytool" Generating Maria's CSR (Certificate Sign Request)
  • "OpenSSL" Signing Maria's CSR (Certificate Sign Request)
  • "keytool" Managing Serial Numbers when Signing CSR
  • "keytool" Importing CA's Certificate into Keystore Files
  • "keytool" Importing Maria's Own Certificate

Migrating Keys from 'keytool' to 'OpenSSL'

  • "keytool" Generating Private and Public Key Pair
  • "keytool" Exporting PrivateKeyEntry
  • "keytool" Printing Certificate Details
  • "OpenSSL" Viewing "keytool" Generated Certificates
  • DumpKey.java - Dumping Private Keys Out of "keystore"
  • "OpenSSL" Converting Keys from Binary to PEM
  • "OpenSSL" Viewing "keytool" Keys

Certificate Formats - X.509, DER and PEM

  • X.509 Certificate Standard
  • PEM (Privacy Enhanced Mail) Encoding
  • DER (Distinguished Encoding Rules) Encoding
  • "keytool" Exporting Certificates in DER and PEM
  • "OpenSSL" Verifying "keytool" Certificates
  • "OpenSSL" Generating Certificates in DER and PEM
  • "keytool" Viewing "OpenSSL" Certificates
  • "keytool" Importing "OpenSSL" Certificates

Key Formats PKCS#8 and PKCS#12 and Migration

  • What is PKCS#8?
  • What is PKCS#12?
  • "OpenSSL" Private Key in Traditional Format
  • "OpenSSL" Private Key in PKCS#8 Format
  • "OpenSSL" Key and Certificate in PKCS#12 Format
  • "keytool" Converting PKCS12 to JKS
  • Summary - Migrating "OpenSSL" Keys to "keytool"
  • Summary - Migrating "keytool" Keys to "OpenSSL"

References

Key Words: blowfish, CA, certificate, certification path, cipher, CSR, decryption, DER, DES, digest, encryption, Java, JCE, JDK, keytool, MD5, message, OpenSSL, PEM, PKCS#8, PKCS#12, private key, public key, RSA, secret key, self-signed certificate, SHA1, SSL, X.509

加密学教程(Cryptography Tuturials)文件夹的更多相关文章

  1. Cocos2d-x 3.0final 终结者系列教程03-源代码文件夹说明

    话说今天从霍营到回龙观,走到天鑫家园东路.我肋哥去,堵死我啦.7:30出门,9:10还没到回龙观. 北京这交通真是坑爹.回过头想想.怪自己走小路,有时候确实快.可有时候真堵. 堵了35分钟后果断掉头, ...

  2. mac系统怎么给文件夹加密?mac文件夹加密教程

    mac系统怎么给文件夹加密?目前来说,若想要对你的Mac OS下面的文件进行加密的话有三种方法可以可以做到,第一种方法,Mac自带磁盘工具:第二种方法,例如BatterZip此类Mac压缩解压工具打包 ...

  3. 使用Windows EFS(怎么给文件夹加密)进行文件加密

    和Windows BitLocker一样,Encrypting File System(EFS,加密文件系统)是Windows内置的一套基于公共密钥的加密机制,可以加密NTFS分区上的文件和文件夹,能 ...

  4. C# 文件夹加密

    可以加密文件内容,也可以对文件夹本身进行加密,本文对文件夹加密. 一.指定或生成一个密钥 1)指定的密钥 /// <summary> /// 密钥,这个密码可以随便指定 /// </ ...

  5. 通达OA 小飞鱼工作流在线培训教程文件夹及意见征集

    最近通达OA技术交流群有不少朋友反映说表单设计这块 改动样式的问题,这块须要html和css的改动.本来最近正好要在工作流这块准备做一个系列的课程,都是基础的设置主要是给刚接触工作流的朋友用的,大家有 ...

  6. mac系统下给文件夹加密方法

    电脑里我们往往会有许多隐私的文件,不希望被别人看到,在过去的Windows电脑里,我们习惯性的会在文件夹中将该文件隐藏,但是这个隐藏是不安全的,遇到稍微会点电脑技术的人就可以给你解开,安全性不高,ma ...

  7. 无需软件windows如何加密文件夹

    在百部百科上看到,放在博客中以便查看. 1.首先打开记事本,当然如果你的电脑里装有类似notepad++的文本编辑软件的也可以,但是不能用word.用这类软件好处是代码高亮,看上去舒服,减少错误率. ...

  8. python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

    python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...

  9. 用cmd加密文件夹

    随着电脑的广泛应用,个人电脑的私人空间越来越大,很多人喜欢把个人的一些私隐的文件存放在电脑上,私隐文件当然是不想别人看到的,为了防止别人看不见自己的文件,可以有很多的方法,今天在网上看了一些文档,学会 ...

随机推荐

  1. Burn Down Chart(2018.6.4~2018.6.10)

    Burn Down Chart (2018.6.4~2018.6.10) 娄雨禛[前端部分] 曾子轩[后端部分+燃尽图] 前端 1. 娄雨禛+李鑫 1)在总工程中完成跳转,实现图片显示,并发布到Git ...

  2. js 攻坚克难

    new new : 官方解释: 如果在一个函数前面带上new来调用,那么背地里将会创建一个连接到该函数的prototype的成员的新对象,同时this会被绑定到哪个新对象上: new 是用来创建对象的 ...

  3. linux下vim命令汇总

    一. 进入vi的命令 vi filename : 打开或新建文件,并将光标置于第一行首 vi +n filename : 打开文件,并将光标置于第n行首 vi + filename : 打开文件,并将 ...

  4. Windows10下Docker的安装

    安装前先说明一下,这里windows10要是专业版(Professional)或者是企业版(Enterprise),而且要是64位,否则会出现错误.不是这两个版本的win10没有自带的虚拟机(教育版未 ...

  5. ionic4封装样式原理

    查看文档: https://www.cnblogs.com/WhiteCusp/p/4342502.html https://www.jianshu.com/p/bb291f9678e1 https: ...

  6. APIshop精选接口助力双十一电商业务

    距离2018年双11的购物盛典已经不到一个月了,各大电商之间的战役已经悄然打响,今年的双11仍会是一场电商鏖战,想必又会打破2017年双11近2540亿的全网成交总额记录. 据统计,去年双11全天共产 ...

  7. matplotlib命令与格式:标题(title),标注(annotate),文字说明(text)

      1.title设置图像标题 (1)title常用参数 fontsize设置字体大小,默认12,可选参数 ['xx-small', 'x-small', 'small', 'medium', 'la ...

  8. JavaScript day3(运算符)

    运算符(operator) 基本运算符: 算术运算符用于执行变量之间的算术运算,给定 y=5: 运算符 描述 例子 结果 + 加 x=y+2 x=7 - 减 x=y-2 x=3 * 乘 x=y*2 x ...

  9. 洛谷——P1896 [SCOI2005]互不侵犯

    P1896 [SCOI2005]互不侵犯 状压DP入门题 状压DP一般需要与处理状态是否合法,节省时间 设定状态dp[i][j][k]表示第i行第j个状态选择国王数为k的方案数 $dp[i][j][n ...

  10. postgres主从配置

    运维开发技术交流群欢迎大家加入一起学习(QQ:722381733) 开始部署postgres主从(如果没不会安装postgres的请去上一个博文中查看) 这里我使用了两台服务器部署 主:192.168 ...