{"id":1655,"date":"2025-02-02T15:28:52","date_gmt":"2025-02-02T22:28:52","guid":{"rendered":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/?p=1655"},"modified":"2025-02-02T15:28:56","modified_gmt":"2025-02-02T22:28:56","slug":"isec-611-group-8-garbled-circuits","status":"publish","type":"post","link":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/2025\/02\/02\/isec-611-group-8-garbled-circuits\/","title":{"rendered":"ISEC 611 Group 8 &#8211; Garbled Circuits"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong><em>Walkthrough <\/em><\/strong>: <a href=\"https:\/\/youtu.be\/7MXVV858loU\">https:\/\/youtu.be\/7MXVV858loU<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Code Example Link<\/em><\/strong>: https:\/\/github.com\/HaydenMcNally\/ISEC-611\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Introduction to Garbled Circuits (History and Overview)<\/strong>\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Garbled circuit is a computational technique which Andrew Yao introduced in an oral presentation in 1986, and the first written document was authored by Goldreich, Micali, and Widgerson in 1987. The term \u201cgarbled circuit\u201d was coined by Beaver, Micali, and Rogaway in 1990. The primary goal was to enable two parties to jointly compute a function using their private inputs while ensuring that neither party gains access to the other\u2019s input. This protocol is particularly useful in scenarios where trust is limited, and secure computation is required without reliance on a trusted third party.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yao\u2019s protocol was first demonstrated in the Millionaires\u2019 Problem, where two individuals determine who is wealthier without disclosing their actual wealth. The problem discusses two millionaires, Alice and Bob, who are interested in knowing which of them is richer without revealing their actual wealth. This problem is analogous to a more general problem where there are two numbers\u202fa\u202fand\u202fb,\u202fand the goal is to determine whether the inequality\u202fa\u2265b\u202fis true or false without revealing the actual values of\u202fa\u202fand\u202fb was the first example of secure computation [3].&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The concept extends beyond this problem, enabling secure computations in various applications, such as privacy-preserving data mining, secure voting, confidential transactions, and privacy-focused AI computations.&nbsp;&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What is Garbled Circuits?\u00a0<\/strong>\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Garbled circuits are a cryptographic protocol that allows two parties to securely compute a function over their private inputs without needing a trusted third party. This is achieved by representing the function as a Boolean circuit and using Oblivious Transfer to ensure input privacy [2].&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In private data computation, one of the objectives is to compute data without the other party knowing the details of the data set.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Privacy preserving data mining (PPDM) deals with protecting the privacy of individual data or sensitive knowledge without sacrificing the utility of the data. People have become aware of the privacy intrusions on their personal data and are very reluctant to share their sensitive information [1]. Also, some regulations on how personal data is handled requires some computational techniques to protect the privacy of individual\/sensitive data.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Garbled circuit is a technique used in a multi-party Privacy Preserving Data Minning (PPDM).&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At its core, the Garbled Circuit protocol involves representing a function as a Boolean circuit, where each logical gate is encrypted in such a way that only the correct sequence of inputs can reveal the output. The process consists of three main phases:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Circuit Garbling<\/strong> \u2013 One party (the garbler) encrypts the circuit using randomly assigned encryption keys for each input.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Oblivious Transfer<\/strong> \u2013 The evaluator (the second party) receives encrypted input values corresponding to their private data without revealing their actual input to the garbler.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Circuit Evaluation<\/strong> \u2013 The evaluator decrypts the circuit and computes the output without learning any information about the garbler\u2019s inputs.\u00a0<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Uses of Garbled Circuits<\/strong>\u00a0<\/h2>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Garbled circuits have applications in:\u00a0<\/li>\n<\/ol>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Secure Data Analysis \u2013 Enabling privacy-preserving computations on sensitive data.\u00a0<\/li>\n<\/ol>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Electronic Voting Systems \u2013 Ensuring voter anonymity and election integrity.\u00a0<\/li>\n<\/ol>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Blockchain \u2013 Enhancing smart contract privacy and security.\u00a0<\/li>\n<\/ol>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>Confidential Transactions \u2013 Protecting financial data in secure payments.\u00a0<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How Does Garbled Circuits Work?<\/strong>\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose that there are two parties, Alice and Bob, who want to compute some function\u202ff (alice_inputs, bob_inputs), which takes inputs from both parties. Alice and Bob both want to learn the result of computing\u202ff, but Alice does not want Bob to learn her inputs, and Bob does not want Alice to learn his inputs. Ideally, they would both learn nothing except for just the output of\u202ffunction f [5].&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Garbled circuits enable the two parties, Alice and Bob, to compute the function while keeping their inputs private from each other.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Alice performs a special procedure (&#8220;garbling&#8221;) to encrypt a circuit (meaning, a set of AND, OR&#8230; gates) which evaluates the function\u202ff. She passes along inputs, also encrypted in a way that&#8217;s compatible with the encrypted circuit, to Bob.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bob uses a technique called &#8220;1-of-2 oblivious transfer&#8221; to learn the encrypted form of his own inputs, without letting Alice know which inputs he obtained.\u00a0\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bob runs the encrypted circuit on the encrypted data and gets the answer and passes it along to Alice.[5]\u00a0<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Classical Yao\u2019s garbled circuits<\/strong>.\u00a0<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Alice creates the truth table based on the circuit.\u202f\u00a0<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\"><\/ol>\n\n\n\n<figure class=\"wp-block-image alignwide size-full\"><img decoding=\"async\" width=\"451\" height=\"197\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture1.png\" alt=\"\" class=\"wp-image-1656 lazyload\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture1.png 451w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture1-300x131.png 300w\" data-sizes=\"(max-width: 451px) 100vw, 451px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 451px; --smush-placeholder-aspect-ratio: 451\/197;\" \/><figcaption class=\"wp-element-caption\">Fig 1. Truth table<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">2. Alice assigns two randomly generated strings, known as labels, to each wire in the circuit: one for Boolean semantic 0 and one for 1. The label is typically k bits in length, where k is the security parameter, and is usually set to 128. Alice then proceeds to all the gates in the circuit and replaces 0 and 1 in the truth tables with the corresponding labels.\u202f\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image alignwide size-full\"><img decoding=\"async\" width=\"451\" height=\"213\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture2.png\" alt=\"\" class=\"wp-image-1657 lazyload\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture2.png 451w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture2-300x142.png 300w\" data-sizes=\"(max-width: 451px) 100vw, 451px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 451px; --smush-placeholder-aspect-ratio: 451\/213;\" \/><figcaption class=\"wp-element-caption\">Fig 2. Set labels for each wire.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">3. Alice then encrypts the output entry of the truth table using the corresponding two input labels. This encrypted table is the garbled table, which can be decrypted only if one possesses the correct two input labels. In the table below, double-key symmetric encryption is employed, and (A<sub>0<\/sub>, B<sub>0<\/sub>) represents the secret key, while E<sub>0<\/sub> denotes the value to be encrypted.\u202f\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image alignwide size-full\"><img decoding=\"async\" width=\"451\" height=\"208\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture3.png\" alt=\"\" class=\"wp-image-1658 lazyload\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture3.png 451w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture3-300x138.png 300w\" data-sizes=\"(max-width: 451px) 100vw, 451px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 451px; --smush-placeholder-aspect-ratio: 451\/208;\" \/><figcaption class=\"wp-element-caption\">Fig 3. Encrypted table<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">4. Alice then randomly permutes the table such that the output value cannot be determined from the row. The protocol\u2019s name,\u202f<strong>garbled<\/strong>, is derived from this random permutation.\u202f\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image alignwide size-full\"><img decoding=\"async\" width=\"451\" height=\"211\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture4.png\" alt=\"\" class=\"wp-image-1659 lazyload\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture4.png 451w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture4-300x140.png 300w\" data-sizes=\"(max-width: 451px) 100vw, 451px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 451px; --smush-placeholder-aspect-ratio: 451\/211;\" \/><figcaption class=\"wp-element-caption\">Fig 4. Garbled table<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">5. Alice sends Bob the computed garbled tables for all gates in the circuit. Bob needs input labels to open the garbled tables. Thus, Alice chooses the labels corresponding to her input and sends them to Bob. Let\u2019s say A and C wires are Alice\u2019s inputs,\u202f<em>and B<\/em>\u202fand\u202f<em>D<\/em>\u202fwires are bob\u2019s inputs. For example, if Alice\u2019s input is 10 (<em>A<\/em><em><sub>1<\/sub><\/em><em>, C<\/em><em><sub>0<\/sub><\/em>), then she sends\u202f<em>A<\/em><em><sub>1<\/sub><\/em>\u202fand\u202f<em>C<\/em><em><sub>0<\/sub><\/em>\u202fto bob (Fig 4.). Bob will not learn anything about Alice\u2019s input since Alice randomly generates the labels that look like random strings to Bob. Bob needs the labels corresponding to his input as well. He receives his labels through oblivious transfers for each bit of his input. For example, if Bob\u2019s input is 01(<em>B<\/em><em><sub>0<\/sub><\/em><em>, D<\/em><em><sub>1<\/sub><\/em>), Bob first asks for b=0 between Alice\u2019s labels\u202f<em>B<\/em><em><sub>0<\/sub><\/em>\u202fand\u202f<em>B<\/em><em><sub>1<\/sub><\/em>. Through a 1-out-of-2 oblivious transfer, he receives\u202f<em>B<\/em><em><sub>0<\/sub><\/em>\u202fand gets\u202f<em>D<\/em><em><sub>1<\/sub><\/em>\u202fsimilarly. After the oblivious transfers, Alice will not learn anything about Bob\u2019s input, and Bob will not learn anything about the other labels.\u202f\u00a0<\/p>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\"><\/ol>\n\n\n\n<figure class=\"wp-block-image alignwide size-full\"><img decoding=\"async\" width=\"451\" height=\"184\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture5.png\" alt=\"\" class=\"wp-image-1660 lazyload\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture5.png 451w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture5-300x122.png 300w\" data-sizes=\"(max-width: 451px) 100vw, 451px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 451px; --smush-placeholder-aspect-ratio: 451\/184;\" \/><figcaption class=\"wp-element-caption\">Fig 5. Bob gets his input labels by oblivious transfer<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">6. After the data transfer, Bob has the garbled tables and the input labels. He goes through all gates one by one and tries to decrypt the rows in their garbled tables. He can open one row (red row in Fig 6.) for each table.\u202f\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image alignwide size-full\"><img decoding=\"async\" width=\"457\" height=\"212\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture6.png\" alt=\"\" class=\"wp-image-1661 lazyload\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture6.png 457w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Picture6-300x139.png 300w\" data-sizes=\"(max-width: 457px) 100vw, 457px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 457px; --smush-placeholder-aspect-ratio: 457\/212;\" \/><figcaption class=\"wp-element-caption\">Fig 6. Bob evaluates the circuit.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">7. After the evaluation, Bob obtains the output label (<em>I<\/em><sub>0<\/sub> in Fig6.), and Alice knows its mapping to Boolean value since she has both labels (<em>I<sub>0<\/sub>, I<sub>1<\/sub><\/em>). Alice can share her information with Bob, or Bob can reveal the output to Alice so that one or both learn the output. [4]\u202f<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Real-World Example (Notable Applications)<\/strong>\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Garbled circuits have seen significant real-world applications, demonstrating their relevance in modern cryptography and secure computation. Some key areas include:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Secure Data Analysis: Organizations can analyse encrypted datasets collaboratively without exposing individual records, ensuring compliance with data protection regulations.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Electronic Voting Systems: Garbled circuits facilitate secure and anonymous voting, preventing tampering while ensuring privacy.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Blockchain and Smart Contracts: Secure multi-party computations allow private transactions and decentralized finance (DeFi) operations without revealing transactional data.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Confidential Transactions: Financial institutions leverage garbled circuits for privacy-preserving banking and fraud detection mechanisms.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AI and Machine Learning: Privacy-preserving AI models use garbled circuits to train models on sensitive data without exposing the original inputs.\u00a0<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Addressing Vulnerabilities in Garbled Circuits<\/strong>\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">While garbled circuits are secure at the protocol level, implementations remain vulnerable to certain attacks. A notable concern is side-channel attacks, where attackers exploit the computational behaviour of the encryption process to infer secret inputs. Recent research has highlighted vulnerabilities in AES-based garbling, where secret-dependent execution sequences leak information. Addressing such issues requires:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use of Constant-Time Implementations: Ensuring encryption and decryption operations are independent of secret values mitigates timing attacks.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Randomization Techniques: Introducing noise in circuit evaluation can obscure execution patterns and protect against side-channel exploits.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Efficient Oblivious Transfer Enhancements: Strengthening the OT process prevents input leakage and ensures secure key exchanges.\u00a0<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Further research is needed to explore post-quantum secure garbled circuits that can resist quantum computing threats.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong>\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Garbled circuits represent a powerful cryptographic tool for secure two-party computations. Their applications in secure data analysis, voting, and blockchain demonstrate their relevance. While vulnerabilities exist, techniques such as constant-time execution and randomized encryption mitigate risks. Our project will provide theoretical insights and a practical demonstration, bridging the gap between research and real-world implementation.\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>References\u00a0<\/strong>\u00a0<\/h2>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>https:\/\/ieeexplore.ieee.org\/document\/6394662 authors of the paper Majid Bashir Malik, M. Asger Ghazi and Rashid Ali.\u00a0\u00a0<\/li>\n<\/ol>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>https:\/\/en.wikipedia.org\/wiki\/Garbled_circuit#:~:text=Garbled%20circuit%20is%20a%20cryptographic,described%20as%20a%20Boolean%20circuit.\u00a0\u00a0\u00a0<\/li>\n<\/ol>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>https:\/\/encyclopedia.pub\/entry\/34557\u00a0\u00a0\u00a0<\/li>\n<\/ol>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>https:\/\/medium.com\/zkpass\/yaos-classical-garbled-circuits-4cbdbadf288e\u00a0\u00a0\u00a0<\/li>\n<\/ol>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><a href=\"https:\/\/vitalik.eth.limo\/general\/2020\/03\/21\/garbled.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/vitalik.eth.limo\/general\/2020\/03\/21\/garbled.html<\/a>\u00a0<\/li>\n<\/ol>\n\n\n\n<ol start=\"6\" class=\"wp-block-list\">\n<li><a href=\"https:\/\/eprint.iacr.org\/2024\/1035\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/eprint.iacr.org\/2024\/1035<\/a> \u00a0<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Discussion Questions\u00a0<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1: Why do the point values added to the wire values in the code not leak any information?<\/strong>\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. How does Oblivious Transfer enhance the security of Garbled Circuits?<\/strong>\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. What are the key differences between Garbled Circuits and Homomorphic Encryption?<\/strong>\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Are there any discovered vulnerabilities in the garbled circuit computational protocol?<\/strong>\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Walkthrough : https:\/\/youtu.be\/7MXVV858loU Code Example Link: https:\/\/github.com\/HaydenMcNally\/ISEC-611\u00a0 Introduction to Garbled Circuits (History and Overview)\u00a0 Garbled circuit is a computational technique which Andrew Yao introduced in an oral presentation in 1986, and the first written document was authored by Goldreich, Micali, and Widgerson in 1987. The term \u201cgarbled circuit\u201d was coined by Beaver, Micali, and Rogaway &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/2025\/02\/02\/isec-611-group-8-garbled-circuits\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;ISEC 611 Group 8 &#8211; Garbled Circuits&#8221;<\/span><\/a><\/p>\n","protected":false},"author":680,"featured_media":1663,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1655","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","entry"],"featured_image_src":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Garbled-Circuits-II-blog-banner-_2D00_-Copy-600x400.png","featured_image_src_square":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2025\/02\/Garbled-Circuits-II-blog-banner-_2D00_-Copy-600x530.png","author_info":{"display_name":"Hayden McNally","author_link":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/author\/hayden-mcnally\/"},"_links":{"self":[{"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/posts\/1655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/users\/680"}],"replies":[{"embeddable":true,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/comments?post=1655"}],"version-history":[{"count":1,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/posts\/1655\/revisions"}],"predecessor-version":[{"id":1662,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/posts\/1655\/revisions\/1662"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/media\/1663"}],"wp:attachment":[{"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/media?parent=1655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/categories?post=1655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/tags?post=1655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}