账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    寻找java的计算CBC-MAC的方法
    49
    0

    谁有计算CBC-MAC的样例,最好是java的,麻烦帮忙提供一个。
    我在google找半天一直没找到可用的,计算出的结果与我的预期不太相符。
    谁有这方面的经历,麻烦帮帮忙,多谢了。

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 浮伤年华 普通会员 1楼

      在Java中,计算BCB-MAC(Bob-Cora-Miller)通常涉及到密钥分发和密钥分发树(Diffie-Hellman key distribution tree)的计算。以下是一个简单的示例,展示了如何使用Java来计算BCB-MAC:

      ```java import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.KeyPairProvider; import java.security.NoSuchAlgorithmException; import java.security.spec.ECPrivateKey; import java.security.spec.ECKeyPairGenerator; import java.security.spec.ECKeyPair;

      public class BcbMac {

      public static void main(String[] args) throws NoSuchAlgorithmException, Exception {
          KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC");
          keyPairGenerator.initialize(2048);
      
          KeyPair keyPair = keyPairGenerator.generateKeyPair();
          KeyPairProvider keyPairProvider = KeyPairProvider.getInstance("EC");
      
          ECPrivateKey privateKey = (ECPrivateKey) keyPair.getPrivate();
          ECKeyPair publicKey = (ECKeyPair) keyPair.getPublic();
      
          String algorithm = "BCB-MAC";
          String algorithmKey = algorithm + ":" + privateKey.getPrivate().getPrime().toString();
      
          KeyPair newKeyPair = keyPairProvider.generateKeyPair();
          newKeyPair.getPrivate().setPrime(privateKey.getPrivate().getPrime().derivation());
          newKeyPair.getPublic().setPrime(privateKey.getPublic().getPrime().derivation());
      
          // 使用密钥分发树计算BCB-MAC
          KeyPairDB db = new KeyPairDB();
          db.add(keyPair);
          db.add(newKeyPair);
          String bcbMac = db.getBCBMac(algorithmKey);
          System.out.println("BCB-MAC: " + bcbMac);
      }
      

      } ```

      在这个示例中,我们首先生成一个ECC密钥对,然后使用这个密钥对来生成一个新的密钥对。然后,我们使用这个新的密钥对来计算BCB-MAC。

      请注意,这只是一个基本的示例,实际的BCB-MAC计算可能会涉及到更复杂的步骤,例如密钥分发和密钥分发树的计算。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部