注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計密碼學(xué)原理與Java實現(xiàn)

密碼學(xué)原理與Java實現(xiàn)

密碼學(xué)原理與Java實現(xiàn)

定 價:¥89.00

作 者: 朱文偉 李建英
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787302580270 出版時間: 2021-06-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 358 字數(shù):  

內(nèi)容簡介

  現(xiàn)在,Java開發(fā)可謂如日中天,并且Java安全開發(fā)是Java開發(fā)領(lǐng)域中的一個重要內(nèi)容,每個Java開發(fā)人員都必須掌握。市面中的絕大多數(shù)密碼學(xué)書籍都是針對C或C 的,本書重點介紹Java自帶加解密函數(shù)的相關(guān)技術(shù),以及密碼學(xué)領(lǐng)域重要的開源庫OpenSSL在Java開發(fā)中的應(yīng)用。 本書共8章,主要內(nèi)容包括密碼學(xué)和Java概述、搭建Java密碼開發(fā)環(huán)境、對稱密碼算法原理、利用JCAJCE對稱加解密、雜湊函數(shù)和HMAC、密碼學(xué)中常見的編碼格式、非對稱算法RSA的加解密、數(shù)字簽名技術(shù)等。本書內(nèi)容非常詳細,學(xué)習(xí)坡度非常平滑,循序漸進,就算沒有密碼學(xué)基礎(chǔ),也能從零開始到全面掌握。 本書面向的讀者是Java開發(fā)人員、企業(yè)內(nèi)轉(zhuǎn)行計算機信息安全的工作人員、已有信息安全基礎(chǔ)并想了解Java加解密新特性的人員。本書也可作為高等院校和培訓(xùn)機構(gòu)計算機及相關(guān)專業(yè)師生的教學(xué)參考書。

作者簡介

  朱文偉,名校計算機專業(yè)統(tǒng)招碩士,20年CC 、Java開發(fā)經(jīng)驗。主導(dǎo)開發(fā)過密碼、圖形、人工智能等產(chǎn)品。精通Linux、Windows系統(tǒng)開發(fā)及數(shù)據(jù)庫開發(fā)技術(shù)。著有圖書《Windows C/C 加密解密實戰(zhàn)》《密碼學(xué)原理與Java實現(xiàn)》《Linux C與C 一線開發(fā)實踐》《Visual C 2017從入門到精通》。

圖書目錄

第1章  加解密和Java概述 1
1.1  密碼學(xué)基礎(chǔ)知識 1
1.1.1  密碼學(xué)概述 1
1.1.2  對稱密鑰加密技術(shù) 2
1.1.3  公開密鑰加密技術(shù) 2
1.1.4  單向散列函數(shù)算法 3
1.1.5  數(shù)字簽名基礎(chǔ)知識 3
1.2  身份認證基礎(chǔ)知識 5
1.2.1  身份認證概述 5
1.2.2  身份認證的方式 5
1.3  Java語言概述 6
1.3.1  Java簡介 6
1.3.2  Java主要特性 7
1.3.3  Java的發(fā)展史 8
第2章  搭建Java密碼開發(fā)環(huán)境 10
2.1  搭建Java開發(fā)環(huán)境 10
2.1.1  下載JDK 10
2.1.2  安裝JDK 11
2.1.3  配置JDK環(huán)境變量 12
2.1.4  在命令行下編譯Java程序 13
2.1.5  在Eclipse中開發(fā)Java程序 14
2.1.6  下載Eclipse 14
2.1.7  啟動Eclipse 14
2.1.8  個Eclipse下的Java工程 15
2.1.9  在工作區(qū)中打開工程 18
2.2  搭建Java Web開發(fā)環(huán)境 18
2.2.1  下載Tomcat 18
2.2.2  安裝Tomcat 19
2.2.3  在Eclipse中配置Tomcat 20
2.2.4  個Eclipse下的JSP工程 21
2.2.5  個JavaBean工程 25
2.3  使用JNI 30
2.4  Java密碼開發(fā)的兩個主流國際庫 35
2.5  準備密碼庫OpenSSL 36
2.5.1  OpenSSL源代碼模塊結(jié)構(gòu) 36
2.5.2  OpenSSL加密庫調(diào)用方式 37
2.5.3  OpenSSL支持的對稱加密算法 38
2.5.4  OpenSSL支持的非對稱加密算法 38
2.5.5  OpenSSL支持的信息摘要算法 38
2.5.6  OpenSSL密鑰和證書管理 38
2.5.7  面向?qū)ο笈cOpenSSL 39
2.5.8  BIO接口 40
2.5.9  EVP接口 41
2.5.10  關(guān)于版本和操作系統(tǒng) 42
2.5.11  在Windows下編譯OpenSSL1.1.1 42
2.5.12  在Windows下編譯OpenSSL1.0.2m 54
2.5.13  測試使用OpenSSL命令 62
2.6  在Java下使用OpenSSL 64
2.6.1  以命令方式使用OpenSSL 64
2.6.2  以函數(shù)庫方式調(diào)用OpenSSL 67
2.7  純Java密碼開發(fā)庫 72
2.7.1  JCA的基本概念 73
2.7.2  JCA的設(shè)計原則 74
2.7.3  JCA中的密碼服務(wù)提供者 74
2.7.4  JCA編程的兩大安全包 76
2.7.5  包java.security中的接口和類 77
2.7.6  包javax.crypto中的接口和類 83
2.7.7  個JCA例子 84
第3章  對稱密碼算法原理 89
3.1  基本概念 89
3.2  對稱加解密算法的分類 90
3.3  流加密算法 90
3.3.1  基本概念 90
3.3.2  流密碼和分組密碼的比較 91
3.3.3  RC4算法 91
3.4  分組加密算法 95
3.4.1  工作模式 95
3.4.2  短塊加密 99
3.4.3  DES和3DES算法 100
3.4.4  SM4算法 118
第4章  利用JCA/JCE對稱加解密 139
4.1  包java.security 140
4.1.1  密鑰接口 140
4.1.2  安全隨機數(shù) 141
4.2  包javax.crypto 150
4.2.1  安全密鑰接口SecretKey 151
4.2.2  密鑰生成類KeyGenerator 151
4.2.3  密鑰規(guī)范類SecretKeySpec 155
4.2.4  初始向量類IvParameterSpec 156
4.2.5  加解密類Cipher 157
4.2.6  利用JCA實現(xiàn)DES加密 160
第5章  雜湊函數(shù)和HMAC 181
5.1  雜湊函數(shù)概述 181
5.1.1  什么是雜湊函數(shù) 181
5.1.2  密碼學(xué)和雜湊函數(shù)概述 182
5.1.3  雜湊函數(shù)的發(fā)展 182
5.1.4  雜湊函數(shù)的設(shè)計 183
5.1.5  雜湊函數(shù)的分類 183
5.1.6  雜湊函數(shù)的碰撞 183
5.2  SM3雜湊算法 184
5.2.1  SM3算法概述 184
5.2.2  SM3算法的特點 184
5.2.3  常量和函數(shù) 184
5.2.4  填充 185
5.2.5  迭代壓縮 185
5.2.6  雜湊值 186
5.2.7  一段式SM3算法的實現(xiàn) 187
5.2.8  三段式SM3雜湊的實現(xiàn) 194
5.2.9  Java和OpenSSL1.1.1b聯(lián)合實現(xiàn)SM3算法 198
5.3  MD5消息摘要算法 201
5.3.1  MD5算法概述 202
5.3.2  MD5算法的特點 202
5.3.3  MD5是否屬于加密算法 202
5.3.4  MD5用途 202
5.3.5  MD5算法原理 203
5.3.6  手工實現(xiàn)MD5算法 204
5.3.7  基于Java消息摘要類實現(xiàn)MD5算法 211
5.4  HMAC 213
5.4.1  什么是HMAC 213
5.4.2  HMAC產(chǎn)生的背景 214
5.4.3  HMAC在身份認證中的應(yīng)用 214
5.4.4  設(shè)計目標(biāo) 215
5.4.5  算法描述 215
5.4.6  手工實現(xiàn)HMAC-MD5 216
5.4.7  基于Java Mac類實現(xiàn)HMAC-MD5 219
5.4.8  實現(xiàn)HMAC-SM3 222
5.5  更通用的基于OpensSSL的哈希運算 226
5.6  SHA系列雜湊算法 232
5.6.1  SHA算法概述 232
5.6.2  SHA系列算法核心思想和特點 233
5.6.3  SHA256算法原理解析 233
5.6.4  SHA256算法核心思想 235
5.6.5  SHA256算法的實現(xiàn) 240
第6章  密碼學(xué)中常見的編碼格式 249
6.1  Base64編碼 249
6.1.1  概述 249
6.1.2  Base64編碼的由來 249
6.1.3  Base64的索引表 249
6.1.4  Base64的轉(zhuǎn)化原理 250
6.1.5  使用OpenSSL的base64命令 252
6.1.6  Java編程實現(xiàn)Base64編解碼 253
6.2  PEM文件 258
6.2.1  什么是PEM文件 258
6.2.2  生成一個PEM文件 260
6.3  ASN.1及其編解碼 261
6.3.1  ASN.1的基本概念 261
6.3.2  ASN.1的編碼格式 262
6.3.3  ASN的優(yōu)點 262
6.3.4  基本語法規(guī)則 263
6.3.5  ASN.1數(shù)據(jù)類型 263
6.3.6  ASN.1實例 266
第7章  非對稱算法RSA的加解密 274
7.1  非對稱密碼體制概述 274
7.2  RSA概述 276
7.3  RSA的數(shù)學(xué)基礎(chǔ) 276
7.3.1  素數(shù) 276
7.3.2  素性檢測 276
7.3.3  倍數(shù) 277
7.3.4  約數(shù) 277
7.3.5  互質(zhì)數(shù) 277
7.3.6  質(zhì)因數(shù) 277
7.3.7  強素數(shù) 277
7.3.8  因子 278
7.3.9  模運算 278
7.3.10  模運算的操作與性質(zhì) 279
7.3.11  單向函數(shù) 279
7.3.12  費馬定理和歐拉定理 280
7.3.13  冪與模冪運算 280
7.3.14  同余符號≡ 280
7.3.15  歐拉函數(shù) 281
7.3.16  公約數(shù) 281
7.3.17  歐幾里得算法 282
7.3.18  擴展歐幾里得算法 284
7.4  RSA算法描述 292
7.5  RSA算法實例 293
7.5.1  查找法計算d 293
7.5.2  簡便法計算私鑰d 295
7.5.3  擴展歐幾里得計算私鑰d 297
7.5.4  加密字母 298
7.5.5  分組加密字符串 298
7.6  RSA加密長度限制問題 302
7.7  熟悉PKCS#1 303
7.7.1  PKCS#1填充 304
7.7.2  PKCS#1中的 RSA私鑰語法 308
7.8  在OpenSSL命令中使用RSA 309
7.8.1  生成RSA公私鑰 309
7.8.2  提取私鑰參數(shù) 311
7.8.3  利用RSA公鑰加密一個文件 312
7.8.4  利用私鑰解密一個文件 313
7.9  基于OpenSSL庫的Java RSA實現(xiàn) 314
7.9.1  OpenSSL的RSA實現(xiàn) 314
7.9.2  主要數(shù)據(jù)結(jié)構(gòu) 315
7.9.3  主要函數(shù) 316
7.10  隨機大素數(shù)的生成 332
7.11  Java中的大數(shù)表示 333
7.12  基于大素數(shù)的RSA算法Java實現(xiàn) 334
7.13  基于JCA的RSA算法實現(xiàn) 339
7.13.1  密鑰對類KeyPair 340
7.13.2  密鑰對生成類KeyPairGenerator 340
7.13.3  密鑰工廠類KeyFactory 342
7.14  RSA算法的攻擊及分析 348
7.14.1  因子分解攻擊 348
7.14.2  選擇密文攻擊 348
7.14.3  公共模數(shù)攻擊 348
7.14.4  小指數(shù)攻擊 349
第8章  數(shù)字簽名技術(shù) 350
8.1  概述 350
8.2  什么是數(shù)字簽名技術(shù) 351
8.2.1  簽名 351
8.2.2  數(shù)字簽名基本概念 352
8.2.3  數(shù)字簽名的原理 352
8.2.4  數(shù)字簽名的一般性定義 353
8.2.5  數(shù)字簽名的分類 354
8.2.6  數(shù)字簽名的安全性 355
8.2.7  數(shù)字簽名的特征與應(yīng)用 356
8.3  RSA 公鑰算法在數(shù)字簽名中的應(yīng)用 356
8.4  利用OpenSSL命令進行簽名驗簽 357

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號