获取密钥流-Java解密

获取密钥流-Java解密,java,encryption,cryptography,des,block-cipher,Java,Encryption,Cryptography,Des,Block Cipher,我使用Java的密码类进行解密 两个问题: 对于多部分解密,将DES解密与OFB结合使用是否可以在第一次迭代中生成密钥流,但不将该密钥流用于XORing,但仍将密钥流馈送到下一个分组密码 我的代码(简要)如下: desCipher = Cipher.getInstance("DES/OFB56/NoPadding"); desCipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameter); for (i=0;i<subframeCount;

我使用Java的密码类进行解密

两个问题:

  • 对于多部分解密,将DES解密与OFB结合使用是否可以在第一次迭代中生成密钥流,但不将该密钥流用于XORing,但仍将密钥流馈送到下一个分组密码
  • 我的代码(简要)如下:

    desCipher = Cipher.getInstance("DES/OFB56/NoPadding");
    desCipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameter);
    for (i=0;i<subframeCount;i++){
    // perform the skip iteration here
      if (firstFrame){
          byte[] dummy = new byte[7];
          dummy[0] = 1;dummy[1] = 12;dummy[2] = 12;dummy[3] = 15;dummy[4] = 26;dummy[5] = 12;dummy[6] = 12;
          desCipher.update(dummy);
      }
      if (not_last_frame){
          decryptedVCW = desCipher.update(vcwShift_E);
      }
      else{
          decryptedVCW = desCipher.doFinal(vcwShift_E);
      }
    
    }
    
    desCipher=Cipher.getInstance(“DES/OFB56/NoPadding”);
    desCipher.init(Cipher.DECRYPT_模式,secretKey,ivParameter);
    
    对于(i=0;i我发现第一次迭代确实跳过了XORing阶段


    密钥流可以通过使用解密的VCW对纯文本进行XORing找到(这对我来说应该是显而易见的)

    我发现第一次迭代确实跳过了XORing阶段

    可以通过使用解密的VCW对纯文本进行XORing来找到密钥流(这对我来说应该是显而易见的)

  • 是的,OFB就是这样工作的:加密(密钥流)的输出直接作为下一个块的输入,所以XOR ing部分独立于加密引擎,就像流密码一样

  • 获取密钥流的另一种方法是使用XOR(或调用
    update()/doFinal()
    )只使用零,以获得实际的密钥流。以防万一,您希望看到密钥流的样子。但是您的方法显然也会起作用,我只是为了完整性而添加这个

  • 是的,OFB就是这样工作的:加密(密钥流)的输出直接作为下一个块的输入,所以XOR ing部分独立于加密引擎,就像流密码一样

  • 获取密钥流的另一种方法是使用XOR(或调用
    update()/doFinal()
    )只使用零,以获得实际的密钥流。以防万一,您希望看到密钥流的样子。但是您的方法显然也会起作用,我只是为了完整性而添加这个


  • 感谢使用零进行XORing,这是获取密钥流的更好方法。感谢使用零进行XORing,这是获取密钥流的更好方法。