【问题标题】:Is it safe to shorten the RSA key to 64 bytes?将 RSA 密钥缩短到 64 字节是否安全?
【发布时间】:2020-05-24 15:23:19
【问题描述】:

我正在尝试加密 Realm DB。密钥应为 64 字节长。我的应用程序的最低 api 级别是 21,所以我只能生成最小长度为 512 字节的 RSA 密钥,依赖于 android sdk 解决方案。将 RSA 密钥缩短到 64 字节是否安全?

KeyStoreHelper.createKeys(application, "REALM_KEY")

RealmConfiguration.Builder()
    .name("MyDatabaseName")
    .encryptionKey(KeyStoreHelper.getSigningKey("REALM_KEY")!!.take(64).toByteArray())
    .schemaVersion(2)
    .deleteRealmIfMigrationNeeded()
    .build()
    .run(Realm::setDefaultConfiguration)

【问题讨论】:

    标签: android realm android-keystore android-security realm-java


    【解决方案1】:

    /security.stackexchange.com 上看到了这个答案

    TL:DR

    传统上,RSA 密钥的“长度”是模数的长度(以位为单位)。当说 RSA 密钥的长度为“2048”时,它实际上意味着模值介于 22047 和 22048 之间。由于给定对的公钥和私钥共享相同的模数,根据定义,它们也具有相同的模数“长度”。理论上,2048 位模数可以恰好适合 256 个字节(因为 256*8 = 2048),但您需要更多字节来编码其他值。

    【讨论】:

      猜你喜欢
      • 2011-05-03
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多