{"id":307,"date":"2019-01-24T16:36:48","date_gmt":"2019-01-24T16:36:48","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/encryption-and-why-keeping-secrets-is-hard\/"},"modified":"2020-07-22T13:24:39","modified_gmt":"2020-07-22T11:24:39","slug":"encryption-and-why-keeping-secrets-is-hard","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/","title":{"rendered":"Encryption and why keeping secrets is hard, even for computers"},"content":{"rendered":"<p><span class=\"firstcharacter\">E<\/span>ncryption algorithms are widely used in the IT industry to provide confidentiality, authentication, intellectual property protection and more. The attention on privacy and cybersecurity in general is rapidly increasing, forcing vendors and developers to adopt state-of-the-art technologies to provide secure software solutions to their users.<\/p>\n<p>The common approach to implement new modules in a software project is <strong>to use libraries<\/strong>, building blocks developed by other developers which address a particular problem.<\/p>\n<p>The general rule of thumb is to <strong>avoid reinventing the wheel<\/strong> if there are existing implementations that may suit our case. When a library is well-designed and maintained, it rapidly becomes the de-facto standard for the particular problem it aims at, and many developers use the same library instead of writing their own solution.<br \/>\nAs an example, to implement data compression in an application, the developer will surely evaluate existing libraries designed just for that rather than trying to implement a compression algorithm from scratch. Mastering compression algorithms, understanding how and why they work, requires skills and knowledge that not every programmer may have. Therefore, it is safer to just reuse the hard work of the experts.<\/p>\n<p>Cryptography is another narrow field that requires <strong>specific knowledge to be mastered<\/strong>, so using <strong>proven and well-tested algorithms and libraries is mandatory<\/strong>.<br \/>\nHowever, while using a compression library does not necessarily require to understand how compression algorithms work, encryption does.<\/p>\n<p>Encryption is not some sort of obscure magic and encryption libraries cannot magically make an application secure if the developers do not understand what they are doing.<br \/>\nTo prove this, Lazar, Chen, Wang, and Zeldovich published a paper in 2014 (&#8220;Why does cryptographic software fail? A case study and open problems&#8221;), showing that 223 security vulnerabilities out of 269 reported for several software applications were due to misuse of the cryptographic libraries. That is about 83% of the case studies.<br \/>\nYou can buy the strongest and safest door in the world. But if you keep a spare key under your doormat, someone will eventually break into your house very easily.<\/p>\n<p>This is an example of bad key management. In the software world, this would translate into storing hardcoded plaintext encryption keys somewhere in the source code. No matter how strong the encryption algorithm is, it will be cracked if the encryption key can be recovered easily.<br \/>\nIn a nutshell, encryption is hard, but understanding the basic principles to be able to use it correctly is mandatory.<br \/>\nThis is the message spread by <strong>Anastasiia Voitova<\/strong> at Codemotion Milan 2018, who shared her view on the topic, along with some cool tips and tricks.<\/p>\n<p>Software applications exchange, manipulate and store data. Nowadays, most modern applications are implemented as distributed services spread all over the world. Therefore, sensitive data may be spread too. Each node in the system may be vulnerable and as for chains, the overall strength of the system is given by its weakest link. Reducing the attack surface is mandatory to keep users data secure.<br \/>\n<strong>Cryptography is essentially a method to reduce the attack surface of our application,<\/strong> by adopting architectural patterns that minimise the risk of data breaches.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2474 aligncenter\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/slide_8.jpg\" alt=\"\" width=\"1643\" height=\"600\" \/><\/p>\n<p>As an example, let&#8217;s consider Zero Knowledge Architectures (ZKA). In <strong>ZKA the system<\/strong> does not need to access plaintext data in order to work. Each service, component and data store in the system works on encrypted data, and only the end users can decrypt it. In other words, the system has no (zero) knowledge on the data it is working on.<br \/>\nThis reduces the attack surface to the client side only.<\/p>\n<p>However, clients are usually more vulnerable; users do not update their OS regularly, sometimes they don&#8217;t even detect the presence of malware software on their machines.<br \/>\nTherefore, depending on the use case, ZKA may be used only with trusted clients. In other scenarios, ZKA works just fine, providing an acceptable level of security. As an example, End-to-End Encryption (E2EE) is a widely adopted scheme to implement confidentiality in messaging applications.<\/p>\n<p>Moreover, a system which is considered secure today may be vulnerable tomorrow, as <strong>new vulnerabilities are discovered<\/strong>. In a world where vulnerabilities affect every layer of a computer system, from CPUs (does the name Spectre ring any bells?) to OS, libraries, and applications, it is just a matter of time. Therefore, logging and auditing everything the system does is mandatory to identify data breaches immediately. GDPR regulation goes along this line by forcing companies to minimize the risk of data breaches.<\/p>\n<p>Keeping secrets is just hard, but not impossible.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Encryption algorithms are widely used in the IT industry to provide confidentiality, authentication, intellectual property protection and more. The attention on privacy and cybersecurity in general is rapidly increasing, forcing vendors and developers to adopt state-of-the-art technologies to provide secure software solutions to their users. The common approach to implement new modules in a software&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/\">Read more<\/a><\/p>\n","protected":false},"author":31,"featured_media":308,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[],"tags":[38],"collections":[],"class_list":{"0":"post-307","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"tag-security-manager","8":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Encryption and why keeping secrets is hard, even for computers - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Codemotion and Facebook organized the Tech Leadership Training boot camp, heres a personal reportage from one of our attendees.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Encryption and why keeping secrets is hard, even for computers\" \/>\n<meta property=\"og:description\" content=\"Encryption algorithms are widely used in the IT industry to provide confidentiality, authentication, intellectual property protection and more.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-01-24T16:36:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-22T11:24:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"639\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sergio Monteleone\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Encryption and why keeping secrets is hard, even for computers\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sergio Monteleone\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/\"},\"author\":{\"name\":\"Sergio Monteleone\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/1175f6a51ed61a57ce2bbe8f28682052\"},\"headline\":\"Encryption and why keeping secrets is hard, even for computers\",\"datePublished\":\"2019-01-24T16:36:48+00:00\",\"dateModified\":\"2020-07-22T11:24:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/\"},\"wordCount\":753,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg\",\"keywords\":[\"Security Manager\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/\",\"name\":\"Encryption and why keeping secrets is hard, even for computers - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg\",\"datePublished\":\"2019-01-24T16:36:48+00:00\",\"dateModified\":\"2020-07-22T11:24:39+00:00\",\"description\":\"Codemotion and Facebook organized the Tech Leadership Training boot camp, heres a personal reportage from one of our attendees.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg\",\"width\":960,\"height\":639},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Encryption and why keeping secrets is hard, even for computers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/1175f6a51ed61a57ce2bbe8f28682052\",\"name\":\"Sergio Monteleone\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/01ed53edef772160c6afbbad5e36940f0cd612cbcf1a6dc3178588bd2b44708c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/01ed53edef772160c6afbbad5e36940f0cd612cbcf1a6dc3178588bd2b44708c?s=96&d=mm&r=g\",\"caption\":\"Sergio Monteleone\"},\"description\":\"Software developer and the co-founder of Moga Software s.r.l., a software house based in Italy. I tend to write code for anything that has a C\/C++ compiler, but don't mind using other technologies and languages. I love cats, dogs and, more in general, any lifeform when Lifeform.numLegs() &lt;= 4.\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/sergio-monteleone\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Encryption and why keeping secrets is hard, even for computers - Codemotion Magazine","description":"Codemotion and Facebook organized the Tech Leadership Training boot camp, heres a personal reportage from one of our attendees.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/","og_locale":"en_US","og_type":"article","og_title":"Encryption and why keeping secrets is hard, even for computers","og_description":"Encryption algorithms are widely used in the IT industry to provide confidentiality, authentication, intellectual property protection and more.","og_url":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2019-01-24T16:36:48+00:00","article_modified_time":"2020-07-22T11:24:39+00:00","og_image":[{"width":960,"height":639,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg","type":"image\/jpeg"}],"author":"Sergio Monteleone","twitter_card":"summary_large_image","twitter_title":"Encryption and why keeping secrets is hard, even for computers","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Sergio Monteleone","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/"},"author":{"name":"Sergio Monteleone","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/1175f6a51ed61a57ce2bbe8f28682052"},"headline":"Encryption and why keeping secrets is hard, even for computers","datePublished":"2019-01-24T16:36:48+00:00","dateModified":"2020-07-22T11:24:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/"},"wordCount":753,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg","keywords":["Security Manager"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/","url":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/","name":"Encryption and why keeping secrets is hard, even for computers - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg","datePublished":"2019-01-24T16:36:48+00:00","dateModified":"2020-07-22T11:24:39+00:00","description":"Codemotion and Facebook organized the Tech Leadership Training boot camp, heres a personal reportage from one of our attendees.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg","width":960,"height":639},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/encryption-and-why-keeping-secrets-is-hard\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Encryption and why keeping secrets is hard, even for computers"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/1175f6a51ed61a57ce2bbe8f28682052","name":"Sergio Monteleone","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/01ed53edef772160c6afbbad5e36940f0cd612cbcf1a6dc3178588bd2b44708c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/01ed53edef772160c6afbbad5e36940f0cd612cbcf1a6dc3178588bd2b44708c?s=96&d=mm&r=g","caption":"Sergio Monteleone"},"description":"Software developer and the co-founder of Moga Software s.r.l., a software house based in Italy. I tend to write code for anything that has a C\/C++ compiler, but don't mind using other technologies and languages. I love cats, dogs and, more in general, any lifeform when Lifeform.numLegs() &lt;= 4.","url":"https:\/\/www.codemotion.com\/magazine\/author\/sergio-monteleone\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia-600x600.jpg","author_info":{"display_name":"Sergio Monteleone","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/sergio-monteleone\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg",960,639,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia-300x200.jpg",300,200,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia-768x511.jpg",768,511,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg",960,639,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg",960,639,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg",960,639,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia.jpg",100,67,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/01\/Anastasia-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Sergio Monteleone","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/sergio-monteleone\/"},"uagb_comment_info":0,"uagb_excerpt":"Encryption algorithms are widely used in the IT industry to provide confidentiality, authentication, intellectual property protection and more. The attention on privacy and cybersecurity in general is rapidly increasing, forcing vendors and developers to adopt state-of-the-art technologies to provide secure software solutions to their users. The common approach to implement new modules in a software&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=307"}],"version-history":[{"count":5,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/307\/revisions"}],"predecessor-version":[{"id":6701,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/307\/revisions\/6701"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/308"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=307"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}