c#RSA从私钥中提取公钥

有没有办法从c#中的私钥中提取公钥?如果我这样做,那么我可以设置是否需要使用私钥保存的公钥信息。所以现在我认为有一种方法可以从私有中提取公钥吗?     
已邀请:
RSA的普通私钥格式包括公钥(“公共指数”对于以抵抗定时攻击的方式实现私钥操作是有用的)。因此,可以从私钥中提取公钥。 (理论上可能有一个“纯RSA私钥”,它不包括公共指数,但它有缺点,例如更难以防止侧通道攻击,以及降低性能。因此,没有人在他们正确的头脑中做到这一点你可以假设当你拥有私钥时,你实际上拥有完整的密钥对。) 在C#/ .NET标准库中,公共和私有RSA密钥可以表示为XML字符串(
ToXmlString()
FromXmlString()
)或自定义
RSAParameters
结构(
ExportParameters()
ImportParameters()
)。如果您可以获得完整的私钥,那么您只需选择公共字段(模数和公共指数),它们共同构成公钥。请注意,
RSACryptoServiceProvider
可能是底层RSA实现的接口,它可以拒绝导出私钥(但通常会接受导出公钥)。     
如果您可以保存它并包含私钥,那么您要保存的不仅仅是私钥。 但是,如果你确实只有私钥,那么不,你不能从中“提取”公钥。如果你能做到这一点,那么你今天的大多数安全性都会过时。 所以基本上,我不相信你只有私钥,你有一个密钥对,你应该能够从中提取公钥。 无论是在C#还是.NET中都可以轻松实现,我都不知道。     
从私钥获取模数,公共指数 - 最有可能 - 65537.到目前为止,我见过的所有Microsoft密码系统都使用该指数生成公钥。公共指数和模数的组合是公钥。     

要回复问题请先登录注册