加密学教程(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. 【转】Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例

    概要  前面,我们已经学习了ArrayList,并了解了fail-fast机制.这一章我们接着学习List的实现类——LinkedList.和学习ArrayList一样,接下来呢,我们先对Linked ...

  2. HashMap的尾部遍历问题--Tail Traversing

    在看网上HashMap的resize()设计时,提到尾部遍历.   JDK1.7的HashMap在实现resize()时,新table[]的列表采用LIFO方式,即队头插入.这样做的目的是:避免尾部遍 ...

  3. Kotlin实例----android5.0新特性之palette

    一.Palette的使用 使用Palette可以让我们从一张图片中拾取颜色,将拾取到的颜色赋予ActionBar,StatusBar以及UI背景色可以让界面色调实现统一或者加载不同图片时同步变化色调 ...

  4. 基于TensorFlow的车牌号识别系统

    简介 过去几周我一直在涉足深度学习领域,尤其是卷积神经网络模型.最近,谷歌围绕街景多位数字识别技术发布了一篇不错的paper.该文章描述了一个用于提取街景门牌号的单个端到端神经网络系统.然后,作者阐述 ...

  5. JS——回调函数

    1.回调函数作为参数的形式进行使用 2.回调函数一定程度上达到了解耦效果(模块化.功能化) <script> console.log(op(1, 2, add)); console.log ...

  6. [Windows Server 2012] Apache+PHP安全设置

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Win20 ...

  7. IIS添加映射配置

    这种问题主要出现在使用应用程序级别的地址重写.如果你将一个动态的地址重写成虚拟的其它扩展名或者不带扩展名的地址,通常在IIS5.1和II6.0中,访问这样一个实际不存在的地址,首先会被Web服务器返回 ...

  8. eclipse常用设置之项目分组查看

    1.打开‘NaviNavigator’ 视图,windows-->show views->NaviNavigator; 2.在NaviNavigator视图下选择select workin ...

  9. Linux学习笔记之 Btrfs文件系统简介及使用

    Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrf ...

  10. bootstrapValidator代码中开启验证和判断验证是否通过

    //开启验证 $('#saveadmin_form').data('bootstrapValidator').validate(); //是否通过校验 if(!$('#saveadmin_form') ...