1 / 17

Monitor's Secret Key Crypto - KARN, encrypt

Monitor's Secret Key Crypto - KARN, encrypt. 512 bit Secret. Monitor's Secret Key Crypto - KARN, encrypt. 512 bit Secret. Left key. Right key. Monitor's Secret Key Crypto - KARN, encrypt. 512 bit Secret. Left key. Right key. 42. First: send out "guard byte" - the number 42 (00101010).

kelly-baird
Download Presentation

Monitor's Secret Key Crypto - KARN, encrypt

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret

  2. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key

  3. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key 42 First: send out "guard byte" - the number 42 (00101010)

  4. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key Left block Right block 320 bit (Padded) Plaintext Block Split plaintext block into two halves

  5. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key Reset Hash Left block Right block 320 bit (Padded) Plaintext Block Reset a SHA message digest

  6. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key Update Hash update Left block Right block 320 bit (Padded) Plaintext Block Update hash with plaintext left block

  7. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key update Update Hash Left block Right block 320 bit (Padded) Plaintext Block Update hash with left key

  8. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key Right Cipher Block Hash Output Left block Right block 320 bit (Padded) Plaintext Block Create right cipher block

  9. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key Right Cipher Block Reset Hash Left block Right block 320 bit (Padded) Plaintext Block Reset Hash

  10. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key Right Cipher Block update Update Hash Left block Right block 320 bit (Padded) Plaintext Block Update Hash with right cipher block

  11. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key update Right Cipher Block Update Hash Left block Right block 320 bit (Padded) Plaintext Block Update Hash with right key

  12. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key Right Cipher Block Hash Output Left Cipher Block Left block Right block 320 bit (Padded) Plaintext Block Create left cipher block - XOR digest with left plaintext block

  13. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key Right Cipher Block Hash Output Left Cipher Block Left block Right block 320 bit (Padded) Plaintext Block Output left cipher block

  14. Monitor's Secret Key Crypto - KARN, encrypt 512 bit Secret Left key Right key Right Cipher Block Hash Output Left Cipher Block Left block Right block 320 bit (Padded) Plaintext Block Output right cipher block

  15. Monitor's Secret Key Crypto - KARN, padding ByteArrayOutputStream buffer = new ByteArrayOutputStream(); String input = "The plaintext message to pad"; byte scratch[] = input.getBytes(); int len = input.length(); buffer.write(scratch, 0, len); < 320 bit Last Plaintext Block Pad to last block, or pad a whole block

  16. Monitor's Secret Key Crypto - KARN, padding buffer.write(0); 0 < 320 bit Last Plaintext Block < 320 bit Last Plaintext Block Stick a 0 byte on the end

  17. Monitor's Secret Key Crypto - KARN, padding int padlen = PADSIZE - ((len + 1) % PADSIZE); scratch[] = new byte[padlen]; SecureRandom sr = new SecureRandom(); sr.nextBytes(scratch); buffer.write(scratch, 0, padlen); Random # 0 < 320 bit Last Plaintext Block 0 < 320 bit Last Plaintext Block < 320 bit Last Plaintext Block Remaining bytes are derived from random #

More Related