RSA如何encrypt/decrypt?

How does RSA encrypt/decrypt?

我正在尝试了解 RSA encryption/decryption,到目前为止它很有意义,但我真的不明白 public/private 密钥是如何生成的以及它们是如何 encrypt/decrypt。

比如我生成一个1024位的public/private密钥:

Public:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCCexd/+nDyyxOVsieqc4c6aC4wHPRi4Nsw0l7hy8XFDOWQiPxBTgeqYtWI2fVBp0J0yHNpibG893W5Ex2UfYUPf8Yru5J9Hr3yHveX1mzJOPedPTq3pg+SKpWGb9oqy76ucFyYM/Rat0IfqotUQSOV79sz1uCbDw1+2VA8klspmwIDAQAB

私人:

MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAIJ7F3/6cPLLE5WyJ6pzhzpoLjAc9GLg2zDSXuHLxcUM5ZCI/EFOB6pi1YjZ9UGnQnTIc2mJsbz3dbkTHZR9hQ9/xiu7kn0evfIe95fWbMk49509OremD5IqlYZv2irLvq5wXJgz9Fq3Qh+qi1RBI5Xv2zPW4JsPDX7ZUDySWymbAgMBAAECgYAnbUBlmGxmwPxTAHlB5RTYjkBeo3EpK56v+vFWszc4WrRHX00yAn0IfELfzlRwmTTYivVsz4GYgwHcga0vgFojLRTmynUNPHD/X64qBRWn7EwaQbjfU9w+xYUpNlJLSlXE9CJnoH/2dN+8zYs7VfhvrW5H3FYvs1DZzD0xe7Bf0QJBAMQBVfY5NtqFW/U8fesDFlwQ6St3Yt9+DbrC418AxxTvvkedQ5QoMo7T1g6VEfisK3b9B23V9q1Rl7XkexDAzDMCQQCqa13aMIteoOmc9UqCnXxIx4qWfH0cxf5/7l6b/hHCdIH3wtZCwHibWjCQukcTlWy/wwxUYhG29O/TCfOGDUT5AkAs8fF4SJ5fdX0kuv5UyZxy+B2/rdyqSwly7gWdX1xHXMJRQaqhaqZNQh4vsdcxIqnE2zi84vdxvuf++amOqecpAkBUCcooVJQFwBgzvIpXys2FHlFrUExqKgEMmUGybyHW4JlO0pfSJxPSmDEmzZVLRP5xuf+UhR/zNuolCd07F8QRAkAk1cg2PERmdk4CwOmxGE2z0PPpUtOFYD+lRtKwlBErCATqp2BBDW7DbhhNR5kRN538KwOpgVxZloTPoiujqVUz

并加密我的消息:

SN/3/es3RCRSp3s8zY/Uyg4Itwk5eELkVKU1OX00EBRixXHYFF/+96+QTxfC7G4HIsKqH2PNwAPPkg0OBzTMjP2GzSdVIkhV4WDKYWXjiPRu36aH/D5CMEY09d3oHlE//nTgI4dJ5XuZw9/e3UwgfMB+gJskIlJ1sfZ6k3hU8uY=

RSA 生成器是如何创建这些密钥的?它是如何加密我的短信的?它将如何使用这些密钥解密该加密消息?该代码是什么样的?

(注意:我没有将这些特定的键用于任何事情)

听起来您的困惑源于这样一个事实,即您在网上看到的大多数 RSA 示例都使用(非常大的)数字而不是二进制数据或文本。

回想一下,在引擎盖下,计算机实际上只能使用 1 和 0。如果我们为数字实现 RSA 算法,我们实际上只是在一堆二进制文件上实现一个抽象层。

文本也以二进制表示。所以我们可以很容易地在它们之间进行转换。

例如,单词 "Test" 在使用 UTF-8 编码时,在二进制中看起来像这样:

01010100 01100101 01110011 01110100

如果我们将此二进制序列转换为数字 (UInt32),我们将得到 1415934836 - 这适合(但不安全)用于 RSA 示例,如上所示维基百科。