Code-Based Cryptography

Brought by: France Université Numerique

Overview

We all use cryptography in our daily lives. The security of the most popular Public-Key Cryptosystems are based either on the hardness of factoring or the presumed intractability of the discrete logarithm problem. Advances on these problems or the construction of large quantum computers would dramatically change the landscape: Code-Based Cryptography is a powerful and promising alternative.

The objective of this course is to present the state of the art of these cryptosystems. This MOOC covers the essentials that you should know about this hot topic in Cryptography and Coding Theory: the security-reduction proofs, the possible attacks, several proposals to reduce the key-size, etc.

Syllabus

Week 1
Error-Correcting Codes and Cryptography

Week 2
McEliece Cryptosystem

Week 3
Message Attacks (ISD)

Week 4
Key Attacks

Week 5
Other cryptographic constructions relying on coding theory

Taught by

Matthieu Finiasz, Nicolas Sendrier and Irene Márquez-Corbella

Code-Based Cryptography
Go to course

Code-Based Cryptography

Brought by: France Université Numerique

  • France Université Numerique
  • Free
  • English
  • Certificate Available
  • Certain days
  • All
  • N/A
8.1.2PHP Version621msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (385ms)
    • Application (234ms)
    • 1 x Booting (62.04%)
      385.12ms
      1 x Application (37.71%)
      234.08ms
      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 executed8.66ms
      • select * from `courses` where `slug_en` = 'code-based-cryptography' limit 1
        7.22ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. code-based-cryptography
        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-06-12 20:12:00' where `id` = 2739
        500μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-12 20:12:00
        • 1. 2739
        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)
        180μ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)
        150μ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 (128) and `institutions`.`deleted_at` is null
        190μ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 (47) and `providers`.`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 `html_files` where `html_files`.`id` = 2730 limit 1
        250μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2730
        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
        jNLFeSBPDjAsvIdHMW888pDyxYcXIcL9mWRumwqo
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/code-based-cryptography" ]
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/code-based-cryptography
        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 => "216.73.216.168" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.168" ] "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 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "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 => "94ec00243bf4115a-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" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "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" => "216.73.216.168" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.168" "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" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "94ec00243bf4115a-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "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" => "39532" "REMOTE_ADDR" => "172.69.59.144" "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/code-based-cryptography" "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" => 1749759120.3024 "REQUEST_TIME" => 1749759120 ]
        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, 12 Jun 2025 20:12:00 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjRGTXJDNTFQSTR6MTJ0UUxRWW51L2c9PSIsInZhbHVlIjoicDJqZUVDWGlBTFNYdEtVZTdIK2pIMGg4MGdkY2EzQ0VDQk4yTENMc0ppTHhJSUg1YS9lZlpjTGFLTElsRmg5WHI0SzBCWWJ2cjc0Z093aFc1RmtSUzFUV3gxbkk2MitYUGVPN2xoT2NzWlNLZVY5WHFlL0xoNGFnQ1YxakFZZHgiLCJtYWMiOiI5MjFjMTNkY2QxMzdjNjJhMDVhMTc0Y2U0YTI1NDFjY2FjOWU1YjgzNzZkMWJlNTVkYmE3ZWNmYWE3ZjhhNDMxIiwidGFnIjoiIn0%3D; expires=Thu, 12 Jun 2025 22:12:00 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IjRGTXJDNTFQSTR6MTJ0UUxRWW51L2c9PSIsInZhbHVlIjoicDJqZUVDWGlBTFNYdEtVZTdIK2pIMGg4MGdkY2EzQ0VDQk4yTENMc0ppTHhJSUg1YS9lZlpjTGFLTElsRmg5WHI0SzBCW" 1 => "laravel_session=eyJpdiI6Inc3WjMzeGIvMDBxempMK3RrTmh4cGc9PSIsInZhbHVlIjoiT2lJb0haZ1IyRjRaRElIaGtOM3prVWVhQ1M1WGxvNjBrMmpaNFhoZjV2OXl6aGduZHZSYVNiV1FSNHAvTW1DZEYyWlRuMG1aYkZZYm80dGNEMjJmWXEyeEJ4WWg2YjNFeFFnYWJZSG5RUHl2VlFraWMzREc4eVlBNmVGcjd2WDgiLCJtYWMiOiIzMmFjZGExYWUyMzVlZjRiODE2MTdlZDRjNTc3MTA0MzY0ODU4MjBjNjFkNzQ3Y2UzY2ZlNTZkOTM4YjZjYjZlIiwidGFnIjoiIn0%3D; expires=Thu, 12 Jun 2025 22:12:00 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Inc3WjMzeGIvMDBxempMK3RrTmh4cGc9PSIsInZhbHVlIjoiT2lJb0haZ1IyRjRaRElIaGtOM3prVWVhQ1M1WGxvNjBrMmpaNFhoZjV2OXl6aGduZHZSYVNiV1FSNHAvTW1DZEYy" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjRGTXJDNTFQSTR6MTJ0UUxRWW51L2c9PSIsInZhbHVlIjoicDJqZUVDWGlBTFNYdEtVZTdIK2pIMGg4MGdkY2EzQ0VDQk4yTENMc0ppTHhJSUg1YS9lZlpjTGFLTElsRmg5WHI0SzBCWWJ2cjc0Z093aFc1RmtSUzFUV3gxbkk2MitYUGVPN2xoT2NzWlNLZVY5WHFlL0xoNGFnQ1YxakFZZHgiLCJtYWMiOiI5MjFjMTNkY2QxMzdjNjJhMDVhMTc0Y2U0YTI1NDFjY2FjOWU1YjgzNzZkMWJlNTVkYmE3ZWNmYWE3ZjhhNDMxIiwidGFnIjoiIn0%3D; expires=Thu, 12-Jun-2025 22:12:00 GMT; path=/XSRF-TOKEN=eyJpdiI6IjRGTXJDNTFQSTR6MTJ0UUxRWW51L2c9PSIsInZhbHVlIjoicDJqZUVDWGlBTFNYdEtVZTdIK2pIMGg4MGdkY2EzQ0VDQk4yTENMc0ppTHhJSUg1YS9lZlpjTGFLTElsRmg5WHI0SzBCW" 1 => "laravel_session=eyJpdiI6Inc3WjMzeGIvMDBxempMK3RrTmh4cGc9PSIsInZhbHVlIjoiT2lJb0haZ1IyRjRaRElIaGtOM3prVWVhQ1M1WGxvNjBrMmpaNFhoZjV2OXl6aGduZHZSYVNiV1FSNHAvTW1DZEYyWlRuMG1aYkZZYm80dGNEMjJmWXEyeEJ4WWg2YjNFeFFnYWJZSG5RUHl2VlFraWMzREc4eVlBNmVGcjd2WDgiLCJtYWMiOiIzMmFjZGExYWUyMzVlZjRiODE2MTdlZDRjNTc3MTA0MzY0ODU4MjBjNjFkNzQ3Y2UzY2ZlNTZkOTM4YjZjYjZlIiwidGFnIjoiIn0%3D; expires=Thu, 12-Jun-2025 22:12:00 GMT; path=/; httponlylaravel_session=eyJpdiI6Inc3WjMzeGIvMDBxempMK3RrTmh4cGc9PSIsInZhbHVlIjoiT2lJb0haZ1IyRjRaRElIaGtOM3prVWVhQ1M1WGxvNjBrMmpaNFhoZjV2OXl6aGduZHZSYVNiV1FSNHAvTW1DZEYy" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "jNLFeSBPDjAsvIdHMW888pDyxYcXIcL9mWRumwqo" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/code-based-cryptography" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]