1/8
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Hashes
Represent data as a short string of text (a message digest)
• Impossible to recover the original message from the digest
• Used to store passwords and provide confidentiality
• Can be a digital signature for authentication,
non-repudiation, and integrity
• A well designed hash will not collide
• Different messages will not have the same hash
SHA256 Hash
256 bits.
64 hexadecimal characters
Collision (hashing)
Hash functions
- Take an input of any size
- Create a fixed size string
- Message digest, checksum
The hash should be unique
- Different inputs should never create the same hash, otherwise its a collision
MD5 has a collision problem
- Found in 2996
- Don't use MD5 for anything important
Practical hashing
Verify a downloaded file
-Hashes may be provided on the download site
-Compare the downloaded file hash with the posted hash value
-Password storage
-Instead of storing the password, store the hash
-Compare hashes during the authentication process
-Nobody ever knows your actual password
Salt
Random data added to a password when hashing
Every User gets their own random salt
- salt is commonly stored with the password
Rainbow tables wont work with salted hashes
- Additional random value added to the original password
Slows things down during brute force process
- But doesn't completely stop reverse engineering
Digital Signature
an encrypted code that a person, website, or organization attaches to an electronic message to verify the identity of the message sender
Provides the following
- Integrity
- Authentication
- Non repudiation
Signed with a private key and any change invalidates the signature
Blockchain
A distributed and decentralized ledger that records and verifies transactions and ownership, making it difficult to tamper with or shut down.
Practical application of blockchain includes
- Payment processing
- Digital identification
- Supply chain monitoring
- Digital voting
Blockchain process
1. Initiate Transaction
2. Validate Transaction
3. Create a Block
4. Calculate and insert a hash
5. Complete transaction