linux演算法簡單使用說明

2021-07-29 15:39:50 字數 2841 閱讀 3572

加密演算法和協議:

對稱加密:加密和解密都使用同乙個秘鑰;

des:

3des:

aes(128bits,192,258,384,512bits):

blowfish:

twofish:

特性:

加密解密都使用同乙個秘鑰;

將原始資料分割成固定大小的塊,逐個加密。

缺點:

秘鑰過多;

秘鑰分發;

公鑰加密:秘鑰是成對出現;

公鑰:分發給所有人;

私鑰:自己存留,必須保證其私有性。

特性:用公鑰加密的資料,只有使用與之配對的私鑰解密,反之亦然。

數字簽名:

主要在於讓接收方確認傳送方身份;

秘鑰交換:

傳送方用對方的公鑰加密乙個對稱秘鑰,並傳送給對方。

資料加密:

單向加密:

只能加密,不能解密,提取資料指紋;

特性:定長輸出,雪崩效應。

演算法:

md5:128bits

sha1:160bits

sha224:

sha256:

sha384:

sha512:

秘鑰交換: ike

公鑰加密:

dh:

a:p,g p,g可公開

b:p,g

a:x (x由a自我儲存)

–> p^x%g p的x次方取模傳送給b,此值可公開

p^y%g^x =p^xy%g

b:y (y由b自我儲存)

–>p^y%g p的y次方取模發給a,此值也可公開

p^x%g^y=p^xy%g

pki:public key infrastructure

簽證機構:ca

序號產生器構:ra

證書吊銷列表:crl

證書訪問庫

x.509:定義了證書的機構以及認證協議標準

版本號

序列號

簽名演算法id

發行者名稱

有效期限

主體名稱

主體公鑰

發行者惟一標識

主體的惟一標識

擴充套件 發行者簽名

ssl: secure socket layer

tls: transport layer security

1995:ssl 2.0, netscape

1996: ssl 3.0

1999: tls 1.0

2006: tls 1.1 rfc 4346

2008:tls 1.2

2015: tls 1.3

分層設計:

1、最低層:基礎演算法原語的實現,aes, rsa, md5

2、向上一層:各種演算法的實現

3、再向上一層:組合演算法實現的半成品

4、用各種元件拼裝而成的種種成品密碼學協議/軟體:

tls, ssh,

openssl:開源專案

三個元件:

openssl:多用途的命令列工具;

libcrypto:公共加密庫;

libssl:庫,實現了ssl及tls;

openssl命令:

標準命令: enc ,ca ,req

對稱加密:

工具:openssl enc ,gpg

演算法:3des,aes,blowfish,twofish

enc命令:

加密:openssl enc -e -des3 -a -salt -in inittab -out inittab.des

解密:openssl enc -d -des3 -a -salt -in inittab.des -out inittab

單向加密:

工具:md5sum,sha1sum,sha224sun,sha256sum,sha384sum,sha512sum,oepnssl dgst

dgst命令:

openssl dgst -md5 /etc/inittab #提取檔案特徵碼

生成使用者隨機密碼:

openssl passwd -1 -salt salt #-1是使用md5加密,salt是雜質

生成隨機數:

openssl rand -base64|-hex num #num表示位元組數,-hex時每個字元4位,出現的字元數字num*2。

公鑰加密:

加密:

演算法:rsa,elgamal

工具:gpg,openssl rsautl

數字簽名:

演算法:rsa,dsa,elgamal

金鑰交換:

演算法:dh

dsa: digital signature algorithm

dss:digital signature standard

rsa:

公鑰加密過程:

生成金鑰對:

生成私鑰檔案:openssl genrsa -out /path/to/privatekey.file num_bits

例:(umask 077,openssl genrsa -out /etc/pki/key.pki 2048)

提取出公鑰:

openssl rsa -in /path/to/priviatekey.file -pubout

隨機數生成器:

/dev/random:僅從熵池返回隨機數;隨機數用盡,阻塞;

/dev/urandom:從熵池返回隨機數;隨機數用盡,會利用軟體生成偽隨機數;非阻塞;

ORMLite簡單使用說明

最近學習了ormlite資料庫框架,將我了解到的一些簡單使用方法記下來。使用前你需要自己定義乙個dbhelper類繼承ormlitesqliteopenhelper。裡面要新增乙個無參建構函式和重寫裡面的oncreate方法。如下 public class dbhelper extends orml...

Git 簡單使用說明

mkdir project 建立專案目錄 cd project 進入專案目錄 git init 初始化 git 本地倉庫。此命令會在當前目錄新建乙個 git 目錄,用於儲存 git 倉庫的相關資訊。touch readme 建立readme檔案好習慣 git add 將當前目錄新增到 git 倉庫中...

MPI簡單使用說明

1.程式最開始需呼叫mpi庫 include mpif.h 2.進入mpi工作環境需先輸入下面三個命令 mpi init ierr 初始化mpi工作環境 mpi comm rank mpi comm world,myid,ierr myid 程序號 mpi comm size mpi comm wo...