Asymmetric Cryptography and Key Management

Brought by: Coursera

Overview

Welcome to Asymmetric Cryptography and Key Management!

In asymmetric cryptography or public-key cryptography, the sender and the receiver use a pair of public-private keys, as opposed to the same symmetric key, and therefore their cryptographic operations are asymmetric. This course will first review the principles of asymmetric cryptography and describe how the use of the pair of keys can provide different security properties. Then, we will study the popular asymmetric schemes in the RSA cipher algorithm and the Diffie-Hellman Key Exchange protocol and learn how and why they work to secure communications/access. Lastly, we will discuss the key distribution and management for both symmetric keys and public keys and describe the important concepts in public-key distribution such as public-key authority, digital certificate, and public-key infrastructure. This course also describes some mathematical concepts, e.g., prime factorization and discrete logarithm, which become the bases for the security of asymmetric primitives, and working knowledge of discrete mathematics will be helpful for taking this course; the Symmetric Cryptography course (recommended to be taken before this course) also discusses modulo arithmetic.

This course is cross-listed and is a part of the two specializations, the Applied Cryptography specialization and the Introduction to Applied Cryptography specialization.

Syllabus

  • Asymmetric Cryptography Overview
    • This module reviews the principles and requirements of asymmetric cryptography, which uses a pair of keys - with one party using a public key and the other using the corresponding private key or vice versa - in contrast to symmetric cryptography using a shared secret key.
  • RSA Algorithm
    • This module describes the RSA cipher algorithm from the key setup and the encryption/decryption operations to the Prime Factorization problem and the RSA security.
  • Diffie-Hellman Key Exchange
    • Diffie-Hellman Key Exchange is an asymmetric cryptographic protocol for key exchange and its security is based on the computational hardness of solving a discrete logarithm problem. This module explains the discrete logarithm problem and describes the Diffie-Hellman Key Exchange protocol and its security issues, for example, against a man-in-the-middle attack.
  • Key Distribution and Management
    • Cryptographic schemes build on cryptographic key, which provides asymmetry between the legitimate parties and the attacker. This module describes key distribution approaches and focuses on the approach based on public-key certificates/authority and public-key infrastructure that can support large number of parties, e.g., Internet.

Taught by

Sang-Yoon Chang

Asymmetric Cryptography and Key Management
Go to course

Asymmetric Cryptography and Key Management

Brought by: Coursera

  • Coursera
  • Free
  • English
  • Certificate Available
  • Available at any time
  • intermediate
  • Arabic, French, Portuguese, Italian, German, Russian, English, Spanish, Thai, Indonesian, Kazakh, Hindi, Swedish, Korean, Greek, Chinese, Ukrainian, Japanese, Polish, Dutch, Turkish
8.1.2PHP Version250msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (156ms)
    • Application (93ms)
    • 1 x Booting (62.57%)
      156.49ms
      1 x Application (37.19%)
      93.00ms
      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 en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed3.99ms
      • select * from `courses` where `slug_en` = 'asymmetric-cryptography-and-key-management' limit 1
        2.65ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. asymmetric-cryptography-and-key-management
        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-04-08 23:47:31' where `id` = 263
        270μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-08 23:47:31
        • 1. 263
        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)
        220μ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)
        190μ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
        230μ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
        210μ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` = 257 limit 1
        220μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 257
        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
        oPYApdD2sYCp7GvWQJmTqFzrzuNEvm2FsNJ1LQYE
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/asymmetric-cryptography-and-key-managemen...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/asymmetric-cryptography-and-key-management
        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" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "priority" => array:1 [ 0 => "u=0, i" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.134.111.219" ] "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" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "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.134.111.219" ] "cf-ray" => array:1 [ 0 => "92d5a67a3c7362e8-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_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_PRIORITY" => "u=0, i" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.134.111.219" "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_CDN_LOOP" => "cloudflare; loops=1" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.134.111.219" "HTTP_CF_RAY" => "92d5a67a3c7362e8-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" => "22178" "REMOTE_ADDR" => "172.70.179.135" "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" => "/en/courses/asymmetric-cryptography-and-key-management" "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" => 1744156051.8083 "REQUEST_TIME" => 1744156051 ]
        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 => "Tue, 08 Apr 2025 23:47:32 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ilp6dmZXWFhoTURFRVUveE5xS251THc9PSIsInZhbHVlIjoiV1k4ZmpjWjV5dE1id2E0NWJpSVd2SFNQaTd1WmJKUnNvdUFMUlg2TFQ3Nzd4Qnd2SDllaCtmclFDclVNdjVtdXNJeTFUTFZBZVFmY0tVeC91SU9sTTV0QUpzejNGaTIrMUtwbHdhNEw1RGJCNkMyL0Q2aFFWMUtIeUNLUG9FVzkiLCJtYWMiOiI4MzMyNGM1ODU1NTNlYTA4OGU0NDA1OWUwZDBkMGE1NWJiMmM1Nzg0ZjgxODEyODAwZGExOGFhOWNmN2UzNTRkIiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 01:47:32 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Ilp6dmZXWFhoTURFRVUveE5xS251THc9PSIsInZhbHVlIjoiV1k4ZmpjWjV5dE1id2E0NWJpSVd2SFNQaTd1WmJKUnNvdUFMUlg2TFQ3Nzd4Qnd2SDllaCtmclFDclVNdjVtdXNJeTFUT" 1 => "laravel_session=eyJpdiI6ImJ5dkdxM1M1ZmZSeFBUeHNGMnhmYkE9PSIsInZhbHVlIjoiVGxaQmhCR3lQNzQrbFN4anhvektqdGhTRXdMTDNCU2UxVzYwTWY5U3FNMS9nMkNXU29zVlFXRTNXSDNjWWF6TEh0Yy9pVHJxRzVrdUI1L0RNaWFrSFdxTWxuOHREVWovdGM3UXNVY3VmTFowSmtjSFRXbnpPbXpFeTY1VzFOU0kiLCJtYWMiOiI4Nzc1ZjFkNGMzYzk5ZGU3OTIwM2Y2ZGM2ZTY2OTI2NTJmZGEwZTYyMWQ1YjA5ZjMyZTBiOGU4ODkyYWMzZjZiIiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 01:47:32 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6ImJ5dkdxM1M1ZmZSeFBUeHNGMnhmYkE9PSIsInZhbHVlIjoiVGxaQmhCR3lQNzQrbFN4anhvektqdGhTRXdMTDNCU2UxVzYwTWY5U3FNMS9nMkNXU29zVlFXRTNXSDNjWWF6TEh0" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ilp6dmZXWFhoTURFRVUveE5xS251THc9PSIsInZhbHVlIjoiV1k4ZmpjWjV5dE1id2E0NWJpSVd2SFNQaTd1WmJKUnNvdUFMUlg2TFQ3Nzd4Qnd2SDllaCtmclFDclVNdjVtdXNJeTFUTFZBZVFmY0tVeC91SU9sTTV0QUpzejNGaTIrMUtwbHdhNEw1RGJCNkMyL0Q2aFFWMUtIeUNLUG9FVzkiLCJtYWMiOiI4MzMyNGM1ODU1NTNlYTA4OGU0NDA1OWUwZDBkMGE1NWJiMmM1Nzg0ZjgxODEyODAwZGExOGFhOWNmN2UzNTRkIiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 01:47:32 GMT; path=/XSRF-TOKEN=eyJpdiI6Ilp6dmZXWFhoTURFRVUveE5xS251THc9PSIsInZhbHVlIjoiV1k4ZmpjWjV5dE1id2E0NWJpSVd2SFNQaTd1WmJKUnNvdUFMUlg2TFQ3Nzd4Qnd2SDllaCtmclFDclVNdjVtdXNJeTFUT" 1 => "laravel_session=eyJpdiI6ImJ5dkdxM1M1ZmZSeFBUeHNGMnhmYkE9PSIsInZhbHVlIjoiVGxaQmhCR3lQNzQrbFN4anhvektqdGhTRXdMTDNCU2UxVzYwTWY5U3FNMS9nMkNXU29zVlFXRTNXSDNjWWF6TEh0Yy9pVHJxRzVrdUI1L0RNaWFrSFdxTWxuOHREVWovdGM3UXNVY3VmTFowSmtjSFRXbnpPbXpFeTY1VzFOU0kiLCJtYWMiOiI4Nzc1ZjFkNGMzYzk5ZGU3OTIwM2Y2ZGM2ZTY2OTI2NTJmZGEwZTYyMWQ1YjA5ZjMyZTBiOGU4ODkyYWMzZjZiIiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 01:47:32 GMT; path=/; httponlylaravel_session=eyJpdiI6ImJ5dkdxM1M1ZmZSeFBUeHNGMnhmYkE9PSIsInZhbHVlIjoiVGxaQmhCR3lQNzQrbFN4anhvektqdGhTRXdMTDNCU2UxVzYwTWY5U3FNMS9nMkNXU29zVlFXRTNXSDNjWWF6TEh0" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "oPYApdD2sYCp7GvWQJmTqFzrzuNEvm2FsNJ1LQYE" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/asymmetric-cryptography-and-key-management" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]