加密学教程(Cryptography Tuturials)目录

简介: 加密学教程(Cryptography Tuturials)太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商业用途-保持一致”创作公用协议Cryptography Tutorials - Herong's Tutorial NotesVersion 4.

加密学教程(Cryptography Tuturials)

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

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


Cryptography Tutorials - Herong's Tutorial Notes
Version 4.00
Dr. Herong Yang

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

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









目录
相关文章
|
5月前
|
安全 算法 Java
互联网并发与安全系列教程(12) - 信息加密技术(单向散列加密)
互联网并发与安全系列教程(12) - 信息加密技术(单向散列加密)
43 0
|
9月前
|
前端开发 数据可视化 安全
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(下)
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(下)
115 0
|
9月前
|
存储 SQL Java
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(上)
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(上)
67 1
|
9月前
|
数据安全/隐私保护
【文件加密】电脑文件夹简单加密教程
【文件加密】电脑文件夹简单加密教程
1376 0
|
存储 安全 算法
Spring Security系列教程22--Spring Security中的密码加密
前言 截止到现在,一一哥 已经带各位学习了很多关于Spring Security的知识点,但是Spring Security作为一个安全框架,其中必然就应该带有安全加密方面的内容,所以本篇文章,一一哥 就带各位来学习Spring Security中的密码加密机制。 Lets go! 一. 密码加密简介 1. 散列加密概述 我们开发时进行密码加密,可用的加密手段有很多,比如对称加密、非对称加密、信息摘要等。在一般的项目里,常用的就是信息摘要算法,也可以被称为散列加密函数,或者称为散列算法、哈希函数。这是一种可以从任何数据中创建数字“指纹”的方法,常用的散列函数有 MD5 消息摘要算法、安全散列
1169 0
|
存储 安全 算法
Spring Security系列教程15--基于散列加密方案实现自动登录
前言 在前面的2个章节中,一一哥 带大家实现了在Spring Security中添加图形验证码校验功能,其实Spring Security的功能不仅仅是这些,还可以实现很多别的效果,比如实现自动登录,注销登录等。 有的小伙伴会问,我们为什么要实现自动登录啊?这个需求其实还是很常见的,因为对于用户来说,他可能经常需要进行登录以及退出登录,你想想,如果用户每次登录时都要输入自己的用户名和密码,是不是很烦,用户体验是不是很不好? 所以为了提高项目的用户体验,我们可以在项目中添加自动登录功能,当然也要给用户提供退出登录的功能。接下来就跟着 一一哥 来学习如何实现这些功能吧! 一. 自动登录简介 1
361 0
|
存储 传感器 物联网
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
487 0
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
|
数据库 数据安全/隐私保护
【Nest教程】Nest项目用户密码加密
【Nest教程】Nest项目用户密码加密
416 0
【Nest教程】Nest项目用户密码加密
|
存储 JavaScript 前端开发
Axios 教程:Vue + Axios 安装及实战 - 手把手教你搭建加密币实时价格看板
Axios 是一个基于Promise的 HTTP 请求库,它用在 node.js 和浏览器里。本教程教你如何使用 Axios 库发出 API 请求远程调取数据。在本教程中,你将学到如何使用 Vue + Axios 搭建一套加密币实时行情看板,你会学到 Axios 如何向加密货币行情 API 请求数据,存储数据,然后使用 Vue 在前端展示这些数据,最终完成「实时行情看板」的搭建。为了让看板看起来更漂亮,我们将使用FoundationCSS 框架。
518 0
|
安全 Java Android开发
【Android 安全】DEX 加密 ( 代理 Application 开发 | multiple-dex-core 依赖库开发 | 配置元数据 | 获取 apk 文件并准备相关目录 )
【Android 安全】DEX 加密 ( 代理 Application 开发 | multiple-dex-core 依赖库开发 | 配置元数据 | 获取 apk 文件并准备相关目录 )
120 0