安全系列(二)-银行加密体系与加解密算法速览

这篇具有很好参考价值的文章主要介绍了安全系列(二)-银行加密体系与加解密算法速览。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、银行3级加密体系说明:

转:加密体系介绍(LMK、ZMK、ZAK、ZPK)_炎升的博客-CSDN博客_lmk密钥

二、加解密算法

1、分类说明

其中按国际和国内使用主要分为:通用算法和国密。

通用算法可以参考:OpenSSL 中文手册 | OpenSSL 中文网

国密算法可以参考:国密算法简单介绍

按加密用途:有对称加密算法、非对称加密算法、摘要算法

文章可以参考:常见的加密算法、原理、优缺点、用途

2、标准说明

加密算法中涉及到很多标准,里面定义了如填充方式、编码方式、加密方式等的规范。

参考文章:密码学浅谈(2):密码学标准 - X.509 与 PKCS 系列 - 知乎

ASN.1

ASN.1(Abstract Syntax Notation One) 是 ISO 和 ITU-T 的联合标准,是描述数据的表示、编码、传输、解码的灵活的记法。它提供了一套正式、无歧义和精确的规则以描述独立于特定计算机硬件的对象结构。

X.509

X.509 是密码学里公钥证书的格式标准。X.509 证书已应用在包括 TLS/SSL 在内的众多网络协议里,同时它也用在很多非在线应用场景里,比如电子签名服务。X.509 证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构 CA 的签名,也可以是自签名)。

PKCS 系列

公钥加密标准(Public Key Cryptography Standards, PKCS),此一标准的设计与发布皆由 RSA 资讯安全公司(英语:RSA Security)所制定。

DER

X.690 是一种 ITU-T 标准,指定了几种 ASN.1 编码格式:

  • 基本编码规则(BER,Basic Encoding Rules)
  • 规范编码规则(CER,Canonical Encoding Rules)
  • 可分辨编码规则(DER,Distinguished Encoding Rules)

BER 是 ASN.1 标准制定的用于将数据编码为二进制格式的原始规则。这些规则在 ASN.1 用语中统称为传输语法,指定用于编码数据的确切八位字节(8 位字节)。

DER 是 BER 的子集,提供了一种对 ASN.1 值进行编码的方式。DER 适用于需要唯一编码的情况,例如在密码学中,并确保需要数字签名的数据结构产生唯一的序列化表示。DER 可以被认为是 BER 的规范形式。

PEM

互联网上使用的几个安全相关标准定义了 ASN.1 数据格式,这些格式通常使用基本编码规则(BER)或可分辨编码规则(DER)进行编码,这是二进制的编码。二进制数据格式的一个缺点是不能在文本传输(如电子邮件或文本文档)中交换。基于文本的编码的一个优点是,它们很容易使用通用文本编辑器进行修改;例如,用户可以连接多个证书以形成具有复制和粘贴操作的证书链。

3、分组加密

一般加密的过程都需要考虑:密钥长度、明文长度和密文长度问题。明文长度需要小于密钥长度,而密文长度则等于密钥长度。因此当加密内容长度大于密钥长度时,大部分加密算法都会进行分段加密。 

常见的分段模式有:ECB(Electronic CodeBook mode,电子密码本模式)、CBC(Cipher Block Chaining mode,密文分组链接模式)、CFB(Cipher FeedBack mode,密文反馈模式)、OFB(Output FeedBack mode,输出反馈模式)、CTR(CounTeR mode,计数器模式)

 参考文章:分组加密算法的几种工作模式 - 十一度 - 博客园

4、填充模式

大部分分组加密算法,对于长度比较长的数据,都会将数据分段成一个个的块Block再进行加密。每个块的长度都是等长的。遇到无法切割成等长的块的数据,就需要对数据进行Padding。

常见的padding算法有:

  • ISO10126Padding
  • OAEPPadding / OAEPWithAndPadding
  • PKCS1Padding / **PKCS5Padding **
  • SSL3Padding

参考文章:

分组加密中的填充介绍(PKCS1Padding / PKCS5Padding/ISO10126Padding)_pan_mlpan的博客-CSDN博客_pkcs5padding填充方式


 

三、Java使用过程的各种问题

1、Cannot find any provider supporting AES/ECB/PKCS7Padding

出现这个问题的原因是:java自带的是PKCS5Padding填充,不支持PKCS7Padding填充。
解决办法是:通过BouncyCastle组件来让java里面支持PKCS7Padding填充。在加解密之前加上:Security.addProvider(new BouncyCastleProvider()),并给Cipher.getInstance方法传入参数”BC”来指定Java使用这个库里的加/解密算法。

2、algid parse error, not a sequence

出现这个问题的原因是:公钥格式不对。之前遇到从加密机导出的公钥格式,跟用PublicKey.getEncode()获取到的内容不一致。加密机导出的内容少了,秘钥算法中的OID部分。

参考文章:SNMP ASN.1 OID编码规则_沙海石的博客-CSDN博客_asn.1 oid文章来源地址https://www.toymoban.com/news/detail-631553.html

到了这里,关于安全系列(二)-银行加密体系与加解密算法速览的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 银行网络安全数字化挂图作战体系建设

    在数字技术和实体经济深度融合的背景下,银行面临的网络安全数据规模和复杂性不断增加,对海量网络安全数据进行分析和展示已经成为必要的需求。银行需要持续探索和发展网络空间可视化技术,利用数字化平台,初步完成了网络安全数字化挂图作战体系建设。 通过对区

    2024年02月02日
    浏览(64)
  • 物联网安全系列 - 非对称加密算法 ECDH

       之前的章节讲到了对称加密算法AES,发送方和接收方需要使用相同的密钥进行通讯,但是发送方怎么将密钥安全的发送给接收方?这是一个问题。    对称加密算法中,为了将密钥安全的发送给对端,通常有以下四种方法: 事先共享密钥    事先双方约定好密钥的数

    2024年02月16日
    浏览(39)
  • 利用Base64加密算法将数据加密解密

    Base64准确来说并不像是一种加密算法,而更像是一种编码标准。 我们知道现在最为流行的编码标准就是ASCLL,它用八个二进制位(一个char的大小)表示了127个字符,任何二进制序列都可以用这127个字符表示出来。 而Base64则是用6个二进制位表示了64个字符,也就是说,任何的

    2024年04月09日
    浏览(92)
  • 哈希算法(hash)加密解密

    套路一样 hash_jiemi.py

    2024年02月13日
    浏览(42)
  • C/C++ 常用加密与解密算法

    计算机安全和数据隐私是现代应用程序设计中至关重要的方面。为了确保数据的机密性和完整性,常常需要使用加密和解密算法。C++是一种广泛使用的编程语言,提供了许多加密和解密算法的实现。本文将介绍一些在C++中常用的加密与解密算法,这其中包括Xor异或、BASE64、

    2024年02月05日
    浏览(38)
  • AES与DES加密解密算法

    AES(Advanced Encryption Standard,高级加密标准)的出现,是因为以前使用的DES算法密钥长度较短,已经不适应当今数据加密安 全性的要求,因此2000年10月2日,美国政府宣布将比利时密码学家Joan Daemen和Vincent Rijmen提出的密码算法RIJNDAEL作为高级加密标准。2001年11月26日,美国政府

    2024年04月28日
    浏览(47)
  • 基于混沌算法的图像加密解密系统

    项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义: 随着信息技术的迅猛发展,图像的传输和存储已经成为现代社会中不可或缺的一部分。然而,随着互联网的普及和信息的快速传播,图像的安全性问题也日益凸显。为了保护图像的机密性和完整性,

    2024年02月22日
    浏览(48)
  • RSA 加密解密算法实现(简单,易懂)!!!

    目录 一、什么是RSA算法 1.对称加密 2.非对称加密 3.非对称加密的应用 二、RSA算法的基础操作步骤 1.生成公钥和私钥 2.用公钥加密信息  3.用私钥解密信息 三、AC代码 六、RSA算法的测试  七、共勉     在计算机中常用的加密算法分为两类: 对称加密算法和非对称加密算法。

    2024年01月20日
    浏览(66)
  • 算法加密与解密、字符编码与字符集

    加密保证数据不会被窃取或者修改 哈希算法 压缩映射 :散列又称为哈希,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。 哈希算法(Hash)又称摘要算法(Digest),哈希算法的目的就是为了验证原始数据是否被篡改。 主流的散列算法有MD5和

    2024年02月03日
    浏览(50)
  • C# .Net学习笔记—— 加密和解密算法

    1、MD5不可逆加密 2、Des对称可逆加密 3、RSA非对称可逆加密 4、数字证书SSL 调用 得出结果 * 通过上面结果可以得出规律 MD5可以得到一串定长的随机编码 传入的字符串或者文件相同,得到的编码是相同的 只要稍微有一点不同得到的MD5都是不同的 1、账号登陆,数据库内防止看

    2024年01月22日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包