spinal.lib.crypto.symmetric

DESBlock

Related Docs: object DESBlock | package symmetric

class DESBlock extends Component

Linear Supertypes
Component, Stackable, DelayedInit, ScalaLocated, NameableByComponent, GlobalDataUser, Nameable, OwnableRef, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. DESBlock
  2. Component
  3. Stackable
  4. DelayedInit
  5. ScalaLocated
  6. NameableByComponent
  7. GlobalDataUser
  8. Nameable
  9. OwnableRef
  10. AnyRef
  11. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new DESBlock(g: DESBlockGenerics = DESBlockGenerics())

Type Members

  1. case class PrePopTask extends Product with Serializable

    Definition Classes
    Component
  2. type RefOwnerType = Component

    Definition Classes
    Component → OwnableRef

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. def addPrePopTask(task: () ⇒ Unit): ArrayBuffer[PrePopTask]

    Definition Classes
    Component
  5. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  6. val children: ArrayBuffer[Component]

    Definition Classes
    Component
  7. val clockDomain: ClockDomain

    Definition Classes
    Component
  8. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. val cmdReady: Bool

    Update the output

  10. val ctnRound: Area { val round: spinal.core.UInt }

    Count the number of round

    Count the number of round

    • Encryption 0 -> 15
    • Decryption 16 -> 1
  11. var definitionName: String

    Definition Classes
    Component
  12. def delayedInit(body: ⇒ Unit): Unit

    Definition Classes
    Component → DelayedInit
  13. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  14. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  15. val feistelNetwork: Area { ... /* 2 definitions in type refinement */ }

    Feistel network

    Feistel network


    | Li-1 | Ri-1 | (2 x 32 bits) (inBlock) -------------------------------- | | XOR<---(Des function)--| | \|_ Ki | | \ / \_/_ / \ -------------------------------- | Li | Ri | (2 x 32 bits) (outBlock) --------------------------------

  16. val finalBlockPermutation: Area { val perm: spinal.core.Bits }

    Final Permutation of the Block ( swap outBlock in order to have the same feistel network for each round )

  17. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  18. def forEachNameables(doThat: (Any) ⇒ Unit): Unit

    Definition Classes
    Nameable
  19. val funcDES: Area { ... /* 5 definitions in type refinement */ }

    DES function In 32 bits | --------------------- | Expansion | (32 -> 48bits) --------------------- | XOR <--------------- Ki (48 bits) | ---- --- --- | S1 |-| S2 |-...-| S8 | (sBox) ---- --- --- | (32 bits) ---------------------- | Permutation | ---------------------- | Out 32 bits

  20. val gIO: SymmetricCryptoBlockGeneric

  21. def getAllIo: Set[BaseType]

    Definition Classes
    Component
  22. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  23. def getDisplayName(): String

    Definition Classes
    Component → Nameable
  24. def getGroupedIO(ioBundleBypass: Boolean): Seq[Data]

    Definition Classes
    Component
  25. def getName(): String

    Definition Classes
    NameableByComponent → Nameable
  26. def getName(default: String): String

    Definition Classes
    Nameable
  27. def getOrdredNodeIo: List[BaseType]

    Definition Classes
    Component
  28. def getParentsPath(sep: String): String

    Definition Classes
    Component
  29. def getPath(sep: String): String

    Definition Classes
    Component
  30. def getRefOwnersChain(): List[Any]

    Definition Classes
    OwnableRef
  31. def getScalaLocationLong: String

    Definition Classes
    ScalaLocated
  32. def getScalaLocationShort: String

    Definition Classes
    ScalaLocated
  33. val globalData: GlobalData

    Definition Classes
    GlobalDataUser
  34. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  35. val init: Bool

  36. val initialBlockPermutation: Area { val perm: spinal.core.Bits }

    Initial permutation

  37. val io: SymmetricCryptoBlockIO

  38. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  39. def isNamed: Boolean

    Definition Classes
    Nameable
  40. def isUnnamed: Boolean

    Definition Classes
    Nameable
  41. val keyScheduling: Area { ... /* 3 definitions in type refinement */ }

    Key scheduling For encryption : Key 64 bits | ----------------------- | Parity drop | (remove 8 bits => 56 bits) ----------------------- | | (2 x 28 bits) ------------ ------------ | Shift left | | Shift left | Round key Generator 1 ------------ ------------ | | | | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | -------------- | !!! Shifting : 1 shift left for round 1,2,9,16, !!! K1 (48 bits) <--|--| compression | | !!! others rounds 2 shift left !!! | -------------- | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ...

    Key scheduling For encryption : Key 64 bits | ----------------------- | Parity drop | (remove 8 bits => 56 bits) ----------------------- | | (2 x 28 bits) ------------ ------------ | Shift left | | Shift left | Round key Generator 1 ------------ ------------ | | | | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | -------------- | !!! Shifting : 1 shift left for round 1,2,9,16, !!! K1 (48 bits) <--|--| compression | | !!! others rounds 2 shift left !!! | -------------- | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ... .... ... ------------ ------------ | Shift left | | Shift left | Round key Generator 16 ------------ ------------ | | -------------- K16 (48bits) <------| compression | --------------

    For decryption : Replace the Shift left by a shift right

  42. val lastRound: Bool

  43. def nameElements(): Unit

    Definition Classes
    Component
  44. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  45. val nextRound: Bool

  46. def noIoPrefix(): DESBlock.this.type

    Definition Classes
    Component
  47. var nodes: ArrayBuffer[Node]

    Definition Classes
    Component
  48. final def notify(): Unit

    Definition Classes
    AnyRef
  49. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  50. val parent: Component

    Definition Classes
    Component
  51. def parents(of: Component, list: List[Component]): List[Component]

    Definition Classes
    Component
  52. def postPopEvent(): Unit

    Definition Classes
    Stackable
  53. def postPushEvent(): Unit

    Definition Classes
    Component → Stackable
  54. def prePopEvent(): Unit

    Definition Classes
    Component → Stackable
  55. var refOwner: RefOwnerType

    Definition Classes
    OwnableRef
  56. def rework[T](gen: ⇒ T): T

    Definition Classes
    Component
  57. val roundNbr: UInt

  58. val rspValid: Bool

  59. def setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): DESBlock.this.type

    Definition Classes
    Nameable
  60. def setCompositeName(nameable: Nameable, postfix: String): DESBlock.this.type

    Definition Classes
    Nameable
  61. def setCompositeName(nameable: Nameable, weak: Boolean): DESBlock.this.type

    Definition Classes
    Nameable
  62. def setCompositeName(nameable: Nameable): DESBlock.this.type

    Definition Classes
    Nameable
  63. def setDefinitionName(name: String): DESBlock.this.type

    Definition Classes
    Component
  64. def setName(name: String, weak: Boolean): DESBlock.this.type

    Definition Classes
    Nameable
  65. def setPartialName(name: String, weak: Boolean): DESBlock.this.type

    Definition Classes
    Nameable
  66. def setPartialName(owner: Nameable, name: String, weak: Boolean): DESBlock.this.type

    Definition Classes
    Nameable
  67. def setPartialName(name: String): DESBlock.this.type

    Definition Classes
    Nameable
  68. def setPartialName(owner: Nameable, name: String): DESBlock.this.type

    Definition Classes
    Nameable
  69. def setRefOwner(that: Any): Unit

    Definition Classes
    OwnableRef
  70. def setWeakName(name: String): DESBlock.this.type

    Definition Classes
    Nameable
  71. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  72. def toString(): String

    Definition Classes
    Nameable → AnyRef → Any
  73. def unsetName(): Unit

    Definition Classes
    Nameable
  74. val userCache: Map[AnyRef, Map[AnyRef, AnyRef]]

    Definition Classes
    Component
  75. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  76. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  77. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Component

Inherited from Stackable

Inherited from DelayedInit

Inherited from ScalaLocated

Inherited from NameableByComponent

Inherited from GlobalDataUser

Inherited from Nameable

Inherited from OwnableRef

Inherited from AnyRef

Inherited from Any

Ungrouped