CN109600229B - 基于ssl标准的跨平台的rsa算法 - Google Patents

基于ssl标准的跨平台的rsa算法 Download PDF

Info

Publication number
CN109600229B
CN109600229B CN201811431811.1A CN201811431811A CN109600229B CN 109600229 B CN109600229 B CN 109600229B CN 201811431811 A CN201811431811 A CN 201811431811A CN 109600229 B CN109600229 B CN 109600229B
Authority
CN
China
Prior art keywords
public key
ciphertext
private key
key
character string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811431811.1A
Other languages
English (en)
Other versions
CN109600229A (zh
Inventor
董志忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201811431811.1A priority Critical patent/CN109600229B/zh
Publication of CN109600229A publication Critical patent/CN109600229A/zh
Application granted granted Critical
Publication of CN109600229B publication Critical patent/CN109600229B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于SSL标准的跨平台的RSA算法,采用SSL标准生成RSA秘钥对;建立基于SSL标准的PEM流,通过RSA密码生成器分别生成公共秘钥对象和私有秘钥对象,将公共秘钥对象和私有秘钥对象输入PEM流后分别输出公钥字符串和私钥字符串;将公钥字符串和私钥字符串分别装载公钥和私钥;利用公钥对数据进行加密,生成密文;利用私钥对密文进行解密,获取明文数据;利用私钥对明文数据进行签名,生成签名密文;利用公钥对明文数据及签名密文分别进行验证。本发明有益效果:通过RSA算法实现跨平台使用,便于各个平台之间相互调用和兼容。

Description

基于SSL标准的跨平台的RSA算法
技术领域
本发明涉及通信技术领域,具体来说,涉及一种基于SSL标准的跨平台的RSA算法。
背景技术
RSA算法是一种非对称密码算法,在使用该算法时,首先选择两个素数作为RSA算法的第一私钥元素与第二私钥元素,然后使用这两个私钥元素生成包含公钥和私钥的密钥对;使用密钥对中的公钥对数据进行加密时,只有使用私钥才能对加密后的数据进行解密,同样的,使用密钥对中的私钥对数据进行签名时,只有使用公钥才能对签名后的数据进行认证。
Java、python、JS、android等互不兼容,不能跨平台使用,MD5和SHA1已经不破解,降低其安全性。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的上述技术问题,本发明提出一种基于SSL标准的跨平台的RSA算法,能够解决了平台系统间无法通用和兼容等问题。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种基于SSL标准的跨平台的RSA算法,包括以下步骤:
S1:采用SSL标准生成RSA秘钥对;
S2:建立基于SSL标准的PEM流,通过RSA密码生成器分别生成公共秘钥对象和私有秘钥对象,将公共秘钥对象和私有秘钥对象输入PEM流后分别输出公钥字符串和私钥字符串;
S3:将公钥字符串和私钥字符串分别装载公钥和私钥;
S4:利用公钥对数据进行加密,生成密文;利用私钥对密文进行解密,获取明文数据;
S5:利用私钥对明文数据进行签名,生成签名密文;
S6:利用公钥对明文数据及签名密文分别进行验证。
进一步地,所述步骤S1中采用SSL标准生成RSA秘钥对具体包括:
S11获取随机数生成器,设置秘钥助记词作为给定的种子补充剂;
S12将密码随机数生成器和秘钥大小作为初始数据,通过RSA密码生成器的initialize方法进行初始化处理;
S13通过RSA密码生成器的generateKeyPair方法生成秘钥对。
进一步地,所述步骤S3中将公钥字符串和私钥字符串分别装载公钥和私钥,具体包括:
S31将公钥字符串和私钥字符串分别转化为字节数组;
S32基于字节数组创建缓冲字符输入流,基于缓冲字符输入流建立PEMParser对象;
S33通过PEMParser对象中readObject方法分别获取PublicKeyInfo对象和PEMKeyPair对象;
S34基于PublicKeyInfo对象和PEMKeyPair对象,通过PEMKeyConverter分别获取公共秘钥对象和私有秘钥对象。
进一步地,所述步骤S4中利用公钥对数据进行加密,生成密文,具体包括:
S41:根据公共秘钥对象通过Cipher对象的init方法来初始化处理;
S42:通过Cipher对象的doFinal方法对待加密数据的字节数组进行加密处理,获取到密文字节数组;
S43:将密文字节数组通过encodeBase64String方法处理为字符串,形成base64格式密文。
进一步地,所述步骤S4中利用私钥对密文进行解密,获取明文数据,具体包括:
S041:将base64格式密文通过decodeBase64方法转化为字节数组格式的密文;
S042:根据私有秘钥对象和DECRYPT_MODE模式,通过Cipher对象的init方法来初始化处理;
S043:利用Cipher对象的doFinal方法对待解密数据的字节数组进行解密处理,获取明文内容。
进一步地,所述步骤5中利用私钥对明文数据进行签名,生成签名密文,具体包括:
S51:获取私有秘钥对象;
S52:基于SHA256withRSA获取数字签名对象;
S53:通过数字签名对象设置私有秘钥对象、进行更新签名和数字签名处理,获取签名后的字节数组信息;
S54:将签名后的字节数组通过encodeBase64String方法处理为字符串,形成base64格式签名密文。
进一步地,所述步骤6利用公钥对明文数据及签名密文分别进行验证,具体包括:
S61:将base64格式签名密文通过decodeBase64方法转化为字节数组格式的签名密文;
S62:获取公共秘钥对象;
S63:基于SHA256withRSA获取数字签名对象;
S64:通过数字签名对象设置公共秘钥对象、进行更新要验证的数据和验证签名处理。
本发明的有益效果:
1、通过RSA算法实现跨平台使用,便于各个平台之间相互调用和兼容;
2、采用SHA256安全算法,使数字签名密文更安全。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的基于SSL标准的跨平台的RSA算法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,根据本发明实施例所述的一种基于SSL标准的跨平台的RSA算法,包括以下步骤:
S1:采用SSL标准生成RSA秘钥对;
S2:建立基于SSL标准的PEM流,通过RSA密码生成器分别生成公共秘钥对象和私有秘钥对象,将公共秘钥对象和私有秘钥对象输入PEM流后分别输出公钥字符串和私钥字符串;
S3:将公钥字符串和私钥字符串分别装载公钥和私钥;
S4:利用公钥对数据进行加密,生成密文;利用私钥对密文进行解密,获取明文数据;
S5:利用私钥对明文数据进行签名,生成签名密文;
S6:利用公钥对明文数据及签名密文分别进行验证。
在本发明的一个具体实施例中,所述步骤S1中采用SSL标准生成RSA秘钥对具体包括:
S11获取随机数生成器,设置秘钥助记词作为给定的种子补充剂;
S12将密码随机数生成器和秘钥大小作为初始数据,通过RSA密码生成器的initialize方法进行初始化处理;
S13通过RSA密码生成器的generateKeyPair方法生成秘钥对。
具体的,获取基于SHA1PRNG的密码强大的随机数生成器(RNG),标记为secureRandom;
设置秘钥助记词作为给定的种子补充剂;创建RSA密码生成器类,标记为keyPairGen;
把密码随机数生成器(RNG)(即secureRandom)以及秘钥大小(如模长,指定的位数)作为初始数据,通过RSA密码生成器(即keyPairGen)的initialize方法进行初始化处理;
通过RSA密码生成器(即keyPairGen)的generateKeyPair方法来生成秘钥对;
创建基于SSL标准的PEM流,标记为pemWriter;
通过RSA密码生成器(即keyPairGen)的getPublic方法来生成公共秘钥对象,标记为publicKey;
把公共秘钥对象(即publicKey)写入到PEM流(即pemWriter)中,输出字符串即为公共秘钥,格式如下:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl/ucpIwBw4ztIx4n6LcV
+ObqfxymEsF3FihSgU8Vfm19xXPpC1343TKEMD1eYvh14+ITiVgwkGxU+gHbt06X
c7AnFKMFrjsvdPUeQX526NVIBXXG7XffjjYX375QSUcvbVTon+ROPq8Sv9mh0GAd
i7Dpak5PgDsBbmRWiZzh4yVWTp6Phg+nbu3IAvcGfCtz8QF/AoMCjKXb/GIa3rcS
iLgAmGhG+STK22CmEQP2y6sKgck6qcFekQzdTTZUlXW+eWaDLHT4FGx/aUnh3MPS
sNNuq9E2O3PvWAD31e+XeLADw3sqVY09ggW4P8I8PPKSxAE6cbVbOtNVsIpIJhkv
pwIDAQAB
-----END PUBLIC KEY-----
通过RSA密码生成器(即keyPairGen)的getPrivate方法来生成私有秘钥对象,标记为priKey;
把私有秘钥对象(即priKey)写入到PEM流(即pemWriter)中,输出字符串即为私有秘钥,格式如下:
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAl/ucpIwBw4ztIx4n6LcV+ObqfxymEsF3FihSgU8Vfm19xXPp
C1343TKEMD1eYvh14+ITiVgwkGxU+gHbt06Xc7AnFKMFrjsvdPUeQX526NVIBXXG
7XffjjYX375QSUcvbVTon+ROPq8Sv9mh0GAdi7Dpak5PgDsBbmRWiZzh4yVWTp6P
hg+nbu3IAvcGfCtz8QF/AoMCjKXb/GIa3rcSiLgAmGhG+STK22CmEQP2y6sKgck6
qcFekQzdTTZUlXW+eWaDLHT4FGx/aUnh3MPSsNNuq9E2O3PvWAD31e+XeLADw3sq
VY09ggW4P8I8PPKSxAE6cbVbOtNVsIpIJhkvpwIDAQABAoIBABUXdwKi52/C8/nm
qnUyS1tSeIKRcD60GJm7mM+XMQ1tloG7d0D7lpjj9NJZAetMPdgVPM7XrU2tqxFT
BrHmtz/310SW5yfp0MkzZzKBoXDogGk5khTMiPrMaP3FBJFWzq8mlG30GiO62ihD
xKANZqxHLe1x1rid97HhPN02J2cFRMPdY9/FmCQAaL2Gci78YAAmyPaBoUdYz53/
jR48ENngQFaqTXVwOh8ypdI2G8rimFyF/Ei48QZMBsGkwJ3l6ympgPRSIAPJww/G
xpJJPFka6MrCO1jQcbgheJ9CwAT+cuhPoh1UcEbXdChSDvHy/b2D0GLQPzV43nPz
McB4PFkCgYEA7bP02zPwRLMazbGNfcbQfkYNpx9ZMXTqCQ4c/GW4QDYzVuLLu1M5
7bIwZIPzjUB2WXF4pASCMBQz0gkXsONsKBOAFDOeRCC7uSysURa0u7OgUJIM5b4C
svoo6MPQObGP0QqlSPdjnMTUHwahnUI/NXsAj12CVZhiXv6fqnDS4rsCgYEAo66A
ndrK+Wrw/XjtBLaiZeBaolfKCZXGYVVecsepefgwxyAv+k11juY7g7OD7ce2MMsB
nMoyqcQr9uzDobwnybG9CiAEfTxmwEhUUP11VMp/xAKoP6DivS5FBi8MKXWKp3Ss
8TAKrUjsuNbGSer309PWemwyvWqYQmqZ3qdJJgUCgYEA29CHxVHxhcZPKhpgawi4
85zasUqXE9o3Nup7OZjjW1YEAfw3ROLA9iPLBpjTWDNdfnclhh+5OLbl+Px5kRWu
hh0KWyQk3oGat7ItI8uolM+WmAuHq8kb++DEhgPWghPGmByNHr3Pu0B1nL9oIuIJ
S+6UZP+nMHp7tbcnddlh21MCgYB8bNuyo66mOWgmlvU+HwOGhC0BudCIxsU+GmIo
yKSJZmTWCh7OnHFgBp55OE5yw904bCm2oXIv4UM2ercgTGLGjQlSGBKxjOfjBVir
FHFL2n+TZh21+LxD6VdpIvyQy5xyPVx2H/oNziC9Re8II8juytsAxx0vJkfGPTjo
q6wMbQKBgQDVTOff7Az2aedf1OPGMq9dIt8i9IcltbhGm7/5zGOxqKF8YrG5X3aq
b/+diKioCENB2POopr6hsYPrP+m90WoTP7igpl3Ny7OcArGG0Yx67vOqGvJoREyv
A9gSjfA6NMkyb+EnFQfslw7k0+C68C73Tg4XJdwAvTMM8wlJ4J6F+g==
-----END RSA PRIVATE KEY-----
在本发明的一个具体实施例中,所述步骤S3中将公钥字符串和私钥字符串分别装载公钥和私钥,具体包括:
S31将公钥字符串和私钥字符串分别转化为字节数组;
S32基于字节数组创建缓冲字符输入流,基于缓冲字符输入流建立PEMParser对象;
S33通过PEMParser对象中readObject方法分别获取PublicKeyInfo对象和PEMKeyPair对象;
S34基于PublicKeyInfo对象和PEMKeyPair对象,通过PEMKeyConverter分别获取公共秘钥对象和私有秘钥对象。
RSA公钥字符串装载公钥,具体的,将公钥字符串转化为字节数组;基于字节数组创建缓冲字符输入流,标记为inputBuffered;基于inputBuffered创建PEMParser对象,标记为pemParser;通过PEMParser对象(即pemParser)中readObject方法获取PublicKeyInfo对象;基于PublicKeyInfo对象,通过PEMKeyConverter中的getPublicKey方法获取公共秘钥对象。
RSA私钥字符串装载私钥,具体的,把步骤一中生成的公钥字符串,转化为byte数组;基于byte数组创建缓冲字符输入流,标记为inputBuffered;基于inputBuffered创建PEMParser对象,标记为pemParser;通过PEMParser对象(即pemParser)中readObject方法获取PEMKeyPair对象;基于PEMKeyPair对象,通过PEMKeyConverter中的getKeyPair方法获取秘钥对象,标记为keyPair;通过秘钥对象(即keyPair)中的getPrivate方法获取私有秘钥对象。
在本发明的一个具体实施例中,所述步骤S4中利用公钥对数据进行加密,生成密文,具体包括:
S41:根据公共秘钥对象通过Cipher对象的init方法来初始化处理;
S42:通过Cipher对象的doFinal方法对待加密数据的字节数组进行加密处理,获取到密文字节数组;
S43:将密文字节数组通过encodeBase64String方法处理为字符串,形成base64格式密文。
具体地,获取公共秘钥对象,标记为publicKey;创建基于RSA的Cipher对象,标记为cipher;根据公共秘钥对象(即publicKey),通过Cipher对象的init方法来初始化处理;通过Cipher对象的doFinal方法对待加密数据的byte数组进行加密处理,获取到密文byte数组;通过encodeBase64String方法把密文byte数组处理为字符串,形成base64格式密文;
例如:对字符串“我是中国”进行加密,得到的base64格式的密文为:
GdC/CSMi6/J8Ssokb81hWJHB17lM4phB87PlRUGZm7Gf0jZGNsvV8Tt5txBTuqiaGNDlnv4/6wd1J3sRwJjM1ptC7Lho7PKsRmFxxD31Rgxm7wCt9m75hlwTr3JHrf7zqm/h5/nQmSEQk/tD/tSTG9Qb36ShDN6nPyu73MS46znp/nEmqjnPFTQgL82yLVIZrj7QcdkUWcuYVagARMzpkxpphKSHwNptsAIvsECjl3l2O05DekoSBVU5rYFloLRnTxoJOHhSb059UZNQBRRqwh1+wK90PtYeZxLcBDAzkJLvyvvU+u7Dfve2igbVXSxkhiozvn2I/jy745u3yuvu/w==
在本发明的一个具体实施例中,所述步骤S4中利用私钥对密文进行解密,获取明文数据,具体包括:
S041:将base64格式密文通过decodeBase64方法转化为字节数组格式的密文;
S042:根据私有秘钥对象和DECRYPT_MODE模式,通过Cipher对象的init方法来初始化处理;
S043:利用Cipher对象的doFinal方法对待解密数据的字节数组进行解密处理,获取明文内容。
具体地,通过decodeBase64方法,把base64格式密文转化为byte数组格式的密文;获取私有秘钥对象,标记为priKey;创建基于RSA的Cipher对象,标记为cipher;根据私有秘钥对象(即priKey)和DECRYPT_MODE模式,通过Cipher对象的init方法来初始化处理;通过Cipher对象的doFinal方法对待解密数据的byte数组(步骤1)进行解密处理,获取明文内容。
例如:对base64格式的密文,如下:
GdC/CSMi6/J8Ssokb81hWJHB17lM4phB87PlRUGZm7Gf0jZGNsvV8Tt5txBTuqiaGNDlnv4/6wd1J3sRwJjM1ptC7Lho7PKsRmFxxD31Rgxm7wCt9m75hlwTr3JHrf7zqm/h5/nQmSEQk/tD/tSTG9Qb36ShDN6nPyu73MS46znp/nEmqjnPFTQgL82yLVIZrj7QcdkUWcuYVagARMzpkxpphKSHwNptsAIvsECjl3l2O05DekoSBVU5rYFloLRnTxoJOHhSb059UZNQBRRqwh1+wK90PtYeZxLcBDAzkJLvyvvU+u7Dfve2igbVXSxkhiozvn2I/jy745u3yuvu/w==
进行解密,就会获取“我是中国”明文内容
在本发明的一个具体实施例中,所述步骤5中利用私钥对明文数据进行签名,生成签名密文,具体包括:
S51:获取私有秘钥对象;
S52:基于SHA256withRSA获取数字签名对象;
S53:通过数字签名对象设置私有秘钥对象、进行更新签名和数字签名处理,获取签名后的字节数组信息;
S54:将签名后的字节数组通过encodeBase64String方法处理为字符串,形成base64格式签名密文。
具体地,获取私有秘钥对象,标记为priKey;基于SHA256withRSA获取数字签名对象,标记为signature;通过数字签名对象(即signature)中的initSign方法,设置私有秘钥对象(即priKey);通过数字签名对象(即signature)中的update方法,使用待签名的信息内容字节数组进行更新要签名;通过数字签名对象(即signature)中的sign方法,进行数字签名处理,获取签名后的byte数组信息;通过encodeBase64String方法把签名后byte数组处理为字符串,形成base64格式签名密文。
例如:对"我是中国&签名1"进行数字签名,得到的base64格式的签名密文如下:
eJiE+FAppZoKif6XNbKEd77jXbWBPJk/ssh6D8ViRLqvf1dWtGXSNVUqQ7IQPuJU9TidvCAOKkSach2MKu6kfZwxsHiUQ+/NEZ3X87YU6Xg2o6W9N7LrBPd/mIhrYe9Cf1TsS/+NECYUffLNgFF78I7gI6YxrCUmacl4vN25gTIprqOGrs6Bv9gWMRgAl61qWcGJele9V03HRFpDvXYrGtFk/0SsFdxFQYIHmLk5cRGZoM5UMXPgcPhX7agy2JTsv3xBKHDsu5tuR+tho4roLMxRRcKLfuBp21Sc7GNEEi+OEchpZwQ3Td/JOQO9hsfEd9EBHvtFHLRStocc1433Ng==
在本发明的一个具体实施例中,所述步骤6利用公钥对明文数据及签名密文分别进行验证,具体包括:
S61:将base64格式签名密文通过decodeBase64方法转化为字节数组格式的签名密文;
S62:获取公共秘钥对象;
S63:基于SHA256withRSA获取数字签名对象;
S64:通过数字签名对象设置公共秘钥对象、进行更新要验证的数据和验证签名处理。
具体地,通过decodeBase64方法,把base64格式签名密文转化为byte数组格式的签名密文;获取公共秘钥对象,标记为publicKey;基于SHA256withRSA获取数字签名对象,标记为signature;通过数字签名对象(即signature)中的initVerify方法,设置公共秘钥对象(即publicKey);通过数字签名对象(即signature)中的update方法,使用待验证签名的信息内容字节数组进行更新要验证的数据;通过数字签名对象(即signature)中的verify方法,进行验证签名处理,如果一致就返回真true,否则就返回假false。
综上所述,借助于本发明的上述技术方案,通过RSA算法实现跨平台使用,便于各个平台之间相互调用和兼容;采用SHA256安全算法,使数字签名密文更安全。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种基于SSL标准的跨平台的RSA算法,其特征在于,包括以下步骤:
S1:采用SSL标准生成RSA秘钥对;
S2:建立基于SSL标准的PEM流,通过RSA密码生成器分别生成公共秘钥对象和私有秘钥对象,将公共秘钥对象和私有秘钥对象输入PEM流后分别输出公钥字符串和私钥字符串;
S3:将公钥字符串和私钥字符串分别装载公钥和私钥;
S4:利用公钥对数据进行加密,生成密文;利用私钥对密文进行解密,获取明文数据;
S5:利用私钥对明文数据进行签名,生成签名密文;
S6:利用公钥对明文数据及签名密文分别进行验证;
所述步骤S1中采用SSL标准生成RSA秘钥对具体包括,S11 获取随机数生成器,设置秘钥助记词作为给定的种子补充剂;
S6利用公钥对明文数据及签名密文分别进行验证,具体包括:
S61:将base64格式签名密文通过decodeBase64方法转化为字节数组格式的签名密文;
S62:获取公共秘钥对象;
S63:基于SHA256withRSA获取数字签名对象;
S64:通过数字签名对象设置公共秘钥对象、进行更新要验证的数据和验证签名处理;
S12将密码随机数生成器和秘钥大小作为初始数据,通过RSA密码生成器的initialize方法进行初始化处理;
S13通过RSA密码生成器的generateKeyPair方法生成秘钥对;
所述步骤S3中将公钥字符串和私钥字符串分别装载公钥和私钥,具体包括,S31 将公钥字符串和私钥字符串分别转化为字节数组;
S32 基于字节数组创建缓冲字符输入流,基于缓冲字符输入流建立PEMParser对象;
S33 通过PEMParser对象中readObject方法分别获取PublicKeyInfo对象和PEMKeyPair对象;
S34 基于PublicKeyInfo对象和PEMKeyPair对象,通过PEMKeyConverter分别获取公共秘钥对象和私有秘钥对象;
所述步骤S4中利用公钥对数据进行加密,生成密文,具体包括,S41:根据公共秘钥对象通过Cipher对象的init方法来初始化处理;
S42:通过Cipher对象的doFinal方法对待加密数据的字节数组进行加密处理,获取到密文字节数组;
S43:将密文字节数组通过encodeBase64String方法处理为字符串,形成base64格式密文。
2.根据权利要求1所述的基于SSL标准的跨平台的RSA算法,其特征在于,所述步骤S4中利用私钥对密文进行解密,获取明文数据,具体包括:
S041:将base64格式密文通过decodeBase64方法转化为字节数组格式的密文;
S042:根据私有秘钥对象和DECRYPT_MODE模式,通过Cipher对象的init方法来初始化处理;
S043:利用Cipher对象的doFinal方法对待解密数据的字节数组进行解密处理,获取明文内容。
3.根据权利要求1所述的基于SSL标准的跨平台的RSA算法,其特征在于,所述步骤S5中利用私钥对明文数据进行签名,生成签名密文,具体包括:
S51:获取私有秘钥对象;
S52:基于SHA256withRSA获取数字签名对象;
S53:通过数字签名对象设置私有秘钥对象、进行更新签名和数字签名处理,获取签名后的字节数组信息;
S54:将签名后的字节数组通过encodeBase64String方法处理为字符串,形成base64格式签名密文。
CN201811431811.1A 2018-11-28 2018-11-28 基于ssl标准的跨平台的rsa算法 Active CN109600229B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811431811.1A CN109600229B (zh) 2018-11-28 2018-11-28 基于ssl标准的跨平台的rsa算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811431811.1A CN109600229B (zh) 2018-11-28 2018-11-28 基于ssl标准的跨平台的rsa算法

Publications (2)

Publication Number Publication Date
CN109600229A CN109600229A (zh) 2019-04-09
CN109600229B true CN109600229B (zh) 2022-03-22

Family

ID=65959106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811431811.1A Active CN109600229B (zh) 2018-11-28 2018-11-28 基于ssl标准的跨平台的rsa算法

Country Status (1)

Country Link
CN (1) CN109600229B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111865616B (zh) * 2020-07-31 2024-03-22 海尔优家智能科技(北京)有限公司 基于ecdsa算法生成密钥对的方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710605A (zh) * 2012-05-08 2012-10-03 重庆大学 一种云制造环境下的信息安全管控方法
CN103138934A (zh) * 2011-11-21 2013-06-05 美国博通公司 安全密钥生成
CN103595802A (zh) * 2013-11-19 2014-02-19 烽火通信科技股份有限公司 家庭网关软件远程自动升级的方法
CN106534116A (zh) * 2016-11-10 2017-03-22 北京锐安科技有限公司 非对称加密方法及装置、非对称解密方法及装置
CN107276998A (zh) * 2017-06-07 2017-10-20 广州华多网络科技有限公司 一种基于OpenSSL的性能优化方法及装置
CN108306730A (zh) * 2018-03-05 2018-07-20 飞天诚信科技股份有限公司 一种在嵌入式系统中生成密钥对的实现方法和装置
CN108449183A (zh) * 2018-05-04 2018-08-24 北京邮电大学 一种使用量子随机数的非对称加密方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103138934A (zh) * 2011-11-21 2013-06-05 美国博通公司 安全密钥生成
CN102710605A (zh) * 2012-05-08 2012-10-03 重庆大学 一种云制造环境下的信息安全管控方法
CN103595802A (zh) * 2013-11-19 2014-02-19 烽火通信科技股份有限公司 家庭网关软件远程自动升级的方法
CN106534116A (zh) * 2016-11-10 2017-03-22 北京锐安科技有限公司 非对称加密方法及装置、非对称解密方法及装置
CN107276998A (zh) * 2017-06-07 2017-10-20 广州华多网络科技有限公司 一种基于OpenSSL的性能优化方法及装置
CN108306730A (zh) * 2018-03-05 2018-07-20 飞天诚信科技股份有限公司 一种在嵌入式系统中生成密钥对的实现方法和装置
CN108449183A (zh) * 2018-05-04 2018-08-24 北京邮电大学 一种使用量子随机数的非对称加密方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
OPENSSL中RSA私钥文件(PEM格式)解析;http://blog.sina.com.cn/s/blog_4fcd1ea30100yh4s.html;《新浪博客》;20120407;第1-4页 *
OpenSSL命令行工具验证数字签名;http://blog.csdn.net/zhangyang0402/article/details/4071196;《CSDN》;20090413;第1页 *

Also Published As

Publication number Publication date
CN109600229A (zh) 2019-04-09

Similar Documents

Publication Publication Date Title
US11323276B2 (en) Mutual authentication of confidential communication
KR100436377B1 (ko) 정보 유닛 처리 방법, 시스템, 칩카드 및 칩카드 수용장치
US8660266B2 (en) Method of delivering direct proof private keys to devices using an on-line service
ES2687191T3 (es) Método de autentificación de red para transacciones electrónicas seguras
CA2590989C (en) Protocol and method for client-server mutual authentication using event-based otp
CN101789865B (zh) 一种用于加密的专用服务器及加密方法
CN102724041B (zh) 一种基于隐写术的密钥传输与密钥更新方法
US20140040633A1 (en) Secure transaction method from a non-secure terminal
CN110958219B (zh) 一种面向医疗云共享数据的sm2代理重加密方法与装置
US7693286B2 (en) Method of delivering direct proof private keys in signed groups to devices using a distribution CD
US8995653B2 (en) Generating a secret key from an asymmetric private key
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
CN104901935A (zh) 一种基于cpk的双向认证及数据交互安全保护方法
US7792303B2 (en) Method of delivering direct proof private keys to devices using a distribution CD
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
US11616641B2 (en) Computer implemented system and method for sharing a common secret
CN113067823A (zh) 邮件用户身份认证和密钥分发方法、系统、设备及介质
CN101557286A (zh) 安全传输系统及方法
CN106452771A (zh) Jce调用密码卡实现内置rsa密钥运算的方法及装置
US20220224530A1 (en) System for restoring lost private key
CN112948867A (zh) 加密报文的生成与解密方法、装置及电子设备
CN109600229B (zh) 基于ssl标准的跨平台的rsa算法
US9800410B1 (en) Data encryption system and method
KR100883442B1 (ko) 온라인 서비스를 사용하여 직접 증명 비밀키를 디바이스에전달하는 방법
CN112713989B (zh) 一种解密方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant