Go to My Blog
Go to Lin's Blog

对称加密,非对称加密

对称加密RC2RC4IDEADESTriple DESAES以及Camellia

  DES(Data Encryption Standard), 1976, 容易被破解,不安全,密钥长度只有56bit

  AES(Advanced Encryption Standard or Rijndael), around 2001,目前最流行

     aes密钥长度有三种:128bit, 192bit, 256bit

     其实对称加密,其加密、解密密钥也是不一样的,但都基于同样的Seed,解密比加密费劲。

     AES是一个block一个block加密的,block size是16Byte。

     数据被切成N*16Byte分别加密,余下<16Byte的数据被加密后也变成了16Byte,有填充。

     用openssl crypto库加密代码参见:http://blog.csdn.net/xueyushenzhou/article/details/23281675

非对称加密(public-key cryptography): RSADiffie-HellmanDSA;

  RSA: Rivest-Shamir-Adleman

  openssl rsa -out rsa_private_key.pem 2048, 生成的.pem文件既包括公钥,也包括私钥。

  提取对应的公钥: openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

  根据私钥文件得到私钥: RSA* pPrivateRsa = PEM_read_RSAPrivateKey(fp,NULL,NULL,NULL);

  根据公钥文件得到公钥: RSA* pPubRsa = PEM_read_RSA_PUBKEY(fp,NULL,NULL,NULL);

  RSA密钥长度: 1024bit, 2048bit, RSA_size(pRsa)可以得到长度

        明文长度: be less than RSA_size(rsa) - 11 for the PKCS #1 v1.5 based padding modes

                     less than RSA_size(rsa) - 41 for RSA_PKCS1_OAEP_PADDING

                     exactly RSA_size(rsa) for RSA_NO_PADDING

       密文长度: 分成多个block,每个block长度等于密钥长度

                     解密的时候RSA_public_encrypt(flen, in, out, pPubRsa, RSA_PKCS1_PADDING), 会返回block实际的明文长度。

单向散列函数: MD5SHA1以及SHA256

  作用类似CRC,是用来做数据校验的。

  

其他:

IV:

Nonce

 

posted @ 2014-05-29 11:32  一ke小小草  阅读(502)  评论(0编辑  收藏  举报