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 Version219msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (141ms)
    • Application (77.23ms)
    • 1 x Booting (64.53%)
      141.38ms
      1 x Application (35.25%)
      77.23ms
      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 executed3.49ms
      • select * from `courses` where `slug_ar` = 'cryptographic-hash-and-integrity-protection' limit 1
        2.13ms/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-13 00:57:37' where `id` = 266
        360μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-02-13 00:57:37
        • 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
        290μ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
        200μ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
        200μ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
        JoBkDoKXd3XH4ca5fo5Tl1nWTeyxbj77B3Rc9gaN
        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 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.16.131.195" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "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" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "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" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "9110dd862abee996-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "3.16.131.195" ] "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_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.16.131.195" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_SITE" => "none" "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_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "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_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "9110dd862abee996-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "3.16.131.195" "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" => "24000" "REMOTE_ADDR" => "172.70.100.7" "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" => 1739408257.2412 "REQUEST_TIME" => 1739408257 ]
        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 => "Thu, 13 Feb 2025 00:57:37 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImVFcW5XQVFTTmJ5ZkJuL1NPOFJRRUE9PSIsInZhbHVlIjoiYjJ3WHlpdGtJeHVXV2ViT0hIYXBoWjErSXZqbG0zTXBkRWtiREN4OGtOOFpkSXpYZlN2NExtcnZqTWNPV0pYM3hQZldKSUtKYWNyTlk0YlhHL3ZRWUQwSVV2NjhCNUNQY0w2cmNEZHJwNFdYcG9qOWZKK2dKWXdreHZsWVcrTzkiLCJtYWMiOiJlNjZhNTIyNDJlMTQyMTc2ZDVjMmI0Y2E3NjA3N2M3NTAyZDAxZGY2N2NmMGZhMjhmOWE3MzNjZTBhZGRiZDRkIiwidGFnIjoiIn0%3D; expires=Thu, 13 Feb 2025 02:57:37 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImVFcW5XQVFTTmJ5ZkJuL1NPOFJRRUE9PSIsInZhbHVlIjoiYjJ3WHlpdGtJeHVXV2ViT0hIYXBoWjErSXZqbG0zTXBkRWtiREN4OGtOOFpkSXpYZlN2NExtcnZqTWNPV0pYM3hQZldKS" 1 => "laravel_session=eyJpdiI6IjBEVG9yMmlFRUFMa2FxWGs0akl2RFE9PSIsInZhbHVlIjoiZDY1RjRYdy9Sc1ZscE01bXRITUxIUnllRTFITWR6bVR6OXlqQytsemFxRlZXaytRNjRYSURod1pXZEtzRHNhbzdoS2xhL1UxSzRQTVdYMVcyL2hxQmV5NGh3RkRnMzd4bmV4aDFCK0xKSCswOE1iNkdxRDQvWVRKN09hS0ZLcmwiLCJtYWMiOiIwYzFkYjNhY2E0MGNmMTMyODg2MjAwYTEyZDRiZTAxNjcyMWNmNmRhNjg3ZDcxMGE1NmFkMWVmMmUwMDVjOTI0IiwidGFnIjoiIn0%3D; expires=Thu, 13 Feb 2025 02:57:37 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjBEVG9yMmlFRUFMa2FxWGs0akl2RFE9PSIsInZhbHVlIjoiZDY1RjRYdy9Sc1ZscE01bXRITUxIUnllRTFITWR6bVR6OXlqQytsemFxRlZXaytRNjRYSURod1pXZEtzRHNhbzdo" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImVFcW5XQVFTTmJ5ZkJuL1NPOFJRRUE9PSIsInZhbHVlIjoiYjJ3WHlpdGtJeHVXV2ViT0hIYXBoWjErSXZqbG0zTXBkRWtiREN4OGtOOFpkSXpYZlN2NExtcnZqTWNPV0pYM3hQZldKSUtKYWNyTlk0YlhHL3ZRWUQwSVV2NjhCNUNQY0w2cmNEZHJwNFdYcG9qOWZKK2dKWXdreHZsWVcrTzkiLCJtYWMiOiJlNjZhNTIyNDJlMTQyMTc2ZDVjMmI0Y2E3NjA3N2M3NTAyZDAxZGY2N2NmMGZhMjhmOWE3MzNjZTBhZGRiZDRkIiwidGFnIjoiIn0%3D; expires=Thu, 13-Feb-2025 02:57:37 GMT; path=/XSRF-TOKEN=eyJpdiI6ImVFcW5XQVFTTmJ5ZkJuL1NPOFJRRUE9PSIsInZhbHVlIjoiYjJ3WHlpdGtJeHVXV2ViT0hIYXBoWjErSXZqbG0zTXBkRWtiREN4OGtOOFpkSXpYZlN2NExtcnZqTWNPV0pYM3hQZldKS" 1 => "laravel_session=eyJpdiI6IjBEVG9yMmlFRUFMa2FxWGs0akl2RFE9PSIsInZhbHVlIjoiZDY1RjRYdy9Sc1ZscE01bXRITUxIUnllRTFITWR6bVR6OXlqQytsemFxRlZXaytRNjRYSURod1pXZEtzRHNhbzdoS2xhL1UxSzRQTVdYMVcyL2hxQmV5NGh3RkRnMzd4bmV4aDFCK0xKSCswOE1iNkdxRDQvWVRKN09hS0ZLcmwiLCJtYWMiOiIwYzFkYjNhY2E0MGNmMTMyODg2MjAwYTEyZDRiZTAxNjcyMWNmNmRhNjg3ZDcxMGE1NmFkMWVmMmUwMDVjOTI0IiwidGFnIjoiIn0%3D; expires=Thu, 13-Feb-2025 02:57:37 GMT; path=/; httponlylaravel_session=eyJpdiI6IjBEVG9yMmlFRUFMa2FxWGs0akl2RFE9PSIsInZhbHVlIjoiZDY1RjRYdy9Sc1ZscE01bXRITUxIUnllRTFITWR6bVR6OXlqQytsemFxRlZXaytRNjRYSURod1pXZEtzRHNhbzdo" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "JoBkDoKXd3XH4ca5fo5Tl1nWTeyxbj77B3Rc9gaN" "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" => [] ]