Cryptographic Hash and Integrity Protection

بواسطة: Coursera

Overview

Welcome to Cryptographic Hash and Integrity Protection!

This course reviews cryptographic hash functions in general and their use in the forms of hash chain and hash tree (Merkle tree). Building on hash functions, the course describes message authentication focusing on message authentication code (MAC) based on symmetric keys. We then discuss digital signatures based on asymmetric cryptography, providing security properties such as non-repudiation which were unavailable in symmetric-cryptography-based message authentication.

This course is a part of the Applied Cryptography specialization.

Syllabus

  • Cryptographic Hash Function
    • Cryptographic hash function is a fundamental building block in modern cryptography and is used for digital signature, message authentication, anomaly detection, pseudo-random number generator, password security, and so on. This module define cryptographic hash functions and contrast it with ordinary hash functions. It also describes the iterative structure for hash implementation to support the hash requirements.
  • Cryptographic Hash Function Applications
    • Building on the previous module defining cryptographic hash functions, this module review its uses and applications. We will first describe hash chain, which chains multiple hash functions in sequence, and apply hash chain for generating one-time passwords using a scheme called S/Key. Then, we will use hash functions to construct a binary tree and describe hash tree, also known as Merkle tree. Lastly, we will review the applications of hash function and hash tree for decentralized digital currency in the forms of cryptocurrency or bitcoins.
  • Message Authentication Code (MAC)
    • Message authentication is to protect the message integrity and to perform sender authentication. This module describes message authentication code (MAC) which is based on symmetric keys. It contrasts MAC with hash functions or general encryption/decryption techniques and quantify the brute force attack difficulty for MAC and discuss the security requirements for MAC. The module also reviews two MAC implementations in Data Authentication Algorithm (DAA) and Cipher-Based MAC (CMAC), which are based on the use of block ciphers.
  • Digital Signature
    • Like physical signatures in paper transactions, digital signature provides sender authentication and non-repudiation. This module describes how to use public-key pair to ensure the source of the packet. Then, it describes the purpose of digital signatures and the corresponding requirements. Lastly, we review a digital signature construction, which is the basis for many digital signature implementations such as RSA signature and Digital Signature Standard (DSS).

Taught by

Sang-Yoon Chang

Cryptographic Hash and Integrity Protection
الذهاب الي الدورة

Cryptographic Hash and Integrity Protection

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • intermediate
  • French, Portuguese, Russian, English, Spanish, Arabic, German, Thai, Indonesian, Kazakh, Hindi, Swedish, Korean, Greek, Italian, Chinese, Ukrainian, Japanese, Polish, Dutch, Turkish
8.1.2PHP Version332msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (215ms)
    • Application (116ms)
    • 1 x Booting (64.77%)
      214.76ms
      1 x Application (35%)
      116.07ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed4.33ms
      • select * from `courses` where `slug_ar` = 'cryptographic-hash-and-integrity-protection' limit 1
        3.09ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. cryptographic-hash-and-integrity-protection
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-02-10 20:20:38' where `id` = 266
        300μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-02-10 20:20:38
        • 1. 266
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (8)
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        140μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (42) and `institutions`.`deleted_at` is null
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 260 limit 1
        300μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 260
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        ZO19TG2B0m4WbKBvGNRwjwPrLK7r1aE3FhmIGg9m
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/crypto...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/cryptographic-hash-and-integrity-protection
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "priority" => array:1 [ 0 => "u=0, i" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-connecting-ip" => array:1 [ 0 => "3.17.39.175" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.17.39.175" ] "cf-ray" => array:1 [ 0 => "90fecd0c1f492270-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_PRIORITY" => "u=0, i" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_CONNECTING_IP" => "3.17.39.175" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.17.39.175" "HTTP_CF_RAY" => "90fecd0c1f492270-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "35376" "REMOTE_ADDR" => "172.71.254.236" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/cryptographic-hash-and-integrity-protection" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1739218838.6728 "REQUEST_TIME" => 1739218838 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Mon, 10 Feb 2025 20:20:38 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ind5Y1NkQ3ZVNnEvU1BPWTdHdHowdkE9PSIsInZhbHVlIjoicDV3VXE0UGNBM3ZCbDMweU45eDNaMGZ2Wmp1dVFqb0NqdHRNdTc5QzB0dmhYR2MzMm1RWWh6NE1lSy9RRzFPayt6U3QvUTBic0hNcDBCKytkeGJiYlJDTU8zMDNWWnpJbzM1YmU1N2hmUmNrTUMwclgxQkk4WmFGbFJ4L0FBTEQiLCJtYWMiOiJiYWQxODI0Y2QyOWZjZDVjYzQ4MzZkM2JlZWVlYWViMGUzNjM2ODZjNWZlNjNmNWZjNTc0YTFlZTBjY2Q5NjNkIiwidGFnIjoiIn0%3D; expires=Mon, 10 Feb 2025 22:20:38 GMT; Max-Age=7199; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Ind5Y1NkQ3ZVNnEvU1BPWTdHdHowdkE9PSIsInZhbHVlIjoicDV3VXE0UGNBM3ZCbDMweU45eDNaMGZ2Wmp1dVFqb0NqdHRNdTc5QzB0dmhYR2MzMm1RWWh6NE1lSy9RRzFPayt6U3QvU" 1 => "laravel_session=eyJpdiI6IkdxZTNwVUdzZVVnWEdrUEhLL2xKdWc9PSIsInZhbHVlIjoiaGxMd1l5NElIbzJvT3B6emFXN0dTd2h1enFXb1JOOGhjRHMzcDdSUFV1OTJTNzlNSVA4dm8zUGFhRkFXWFM5NUEvTE5iV0NyaUprRDRSeHhqK1RyUGExNENPR015NFdHUGpySTNWaHdTNC9WUEptMXRFR3FZM3RlN21ORFhkTlQiLCJtYWMiOiI3NTZkMmY5NmJkNTU5MGY2ODE1YzAwMzVlMzM4ODFjMTIyMWMxNmYzOTU0NmZhZWMxMWQ2NzNjYzM3MGYwMWYzIiwidGFnIjoiIn0%3D; expires=Mon, 10 Feb 2025 22:20:38 GMT; Max-Age=7199; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IkdxZTNwVUdzZVVnWEdrUEhLL2xKdWc9PSIsInZhbHVlIjoiaGxMd1l5NElIbzJvT3B6emFXN0dTd2h1enFXb1JOOGhjRHMzcDdSUFV1OTJTNzlNSVA4dm8zUGFhRkFXWFM5NUEv" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ind5Y1NkQ3ZVNnEvU1BPWTdHdHowdkE9PSIsInZhbHVlIjoicDV3VXE0UGNBM3ZCbDMweU45eDNaMGZ2Wmp1dVFqb0NqdHRNdTc5QzB0dmhYR2MzMm1RWWh6NE1lSy9RRzFPayt6U3QvUTBic0hNcDBCKytkeGJiYlJDTU8zMDNWWnpJbzM1YmU1N2hmUmNrTUMwclgxQkk4WmFGbFJ4L0FBTEQiLCJtYWMiOiJiYWQxODI0Y2QyOWZjZDVjYzQ4MzZkM2JlZWVlYWViMGUzNjM2ODZjNWZlNjNmNWZjNTc0YTFlZTBjY2Q5NjNkIiwidGFnIjoiIn0%3D; expires=Mon, 10-Feb-2025 22:20:38 GMT; path=/XSRF-TOKEN=eyJpdiI6Ind5Y1NkQ3ZVNnEvU1BPWTdHdHowdkE9PSIsInZhbHVlIjoicDV3VXE0UGNBM3ZCbDMweU45eDNaMGZ2Wmp1dVFqb0NqdHRNdTc5QzB0dmhYR2MzMm1RWWh6NE1lSy9RRzFPayt6U3QvU" 1 => "laravel_session=eyJpdiI6IkdxZTNwVUdzZVVnWEdrUEhLL2xKdWc9PSIsInZhbHVlIjoiaGxMd1l5NElIbzJvT3B6emFXN0dTd2h1enFXb1JOOGhjRHMzcDdSUFV1OTJTNzlNSVA4dm8zUGFhRkFXWFM5NUEvTE5iV0NyaUprRDRSeHhqK1RyUGExNENPR015NFdHUGpySTNWaHdTNC9WUEptMXRFR3FZM3RlN21ORFhkTlQiLCJtYWMiOiI3NTZkMmY5NmJkNTU5MGY2ODE1YzAwMzVlMzM4ODFjMTIyMWMxNmYzOTU0NmZhZWMxMWQ2NzNjYzM3MGYwMWYzIiwidGFnIjoiIn0%3D; expires=Mon, 10-Feb-2025 22:20:38 GMT; path=/; httponlylaravel_session=eyJpdiI6IkdxZTNwVUdzZVVnWEdrUEhLL2xKdWc9PSIsInZhbHVlIjoiaGxMd1l5NElIbzJvT3B6emFXN0dTd2h1enFXb1JOOGhjRHMzcDdSUFV1OTJTNzlNSVA4dm8zUGFhRkFXWFM5NUEv" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "ZO19TG2B0m4WbKBvGNRwjwPrLK7r1aE3FhmIGg9m" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/cryptographic-hash-and-integrity-protection" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]