Self-correctors for Cryptographic Modules (2024)

Abstract

A self-corrector for a function f is an efficient machine that computes f correctly using any untrusted black-box that computes f correctly only with a certain probability. The design of self-correctors for non-verifiable functions, typically decryption functions of public-key cryptographies, was investigated. We present a design method for self-correctors that works even when the black-box returns correct output with probability of less than 1/2. For a practical demonstration of the method, we also present examples of self-correctors for the decryption functions of public-key cryptosystems, such as the ElGamal, the Pailler, and the GHV cryptosystems, and for hidden pairings with trapdoors.

Keywords

  • Smart Card
  • Success Probability
  • Turing Machine
  • Stable Class
  • Decryption Function

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

This is a preview of subscription content, log in via an institution.

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

') var head = document.getElementsByTagName("head")[0] var script = document.createElement("script") script.type = "text/javascript" script.src = "https://buy.springer.com/assets/js/buybox-bundle-a3cdb49e59.js" script.id = "ecommerce-scripts-" + timestamp head.appendChild(script) var buybox = document.querySelector("[data-id=id_"+ timestamp +"]").parentNode ;[].slice.call(buybox.querySelectorAll(".buying-option")).forEach(initCollapsibles) function initCollapsibles(subscription, index) { var toggle = subscription.querySelector(".buying-option-price") subscription.classList.remove("expanded") var form = subscription.querySelector(".buying-option-form") if (form) { var formAction = form.getAttribute("action") document.querySelector("#ecommerce-scripts-" + timestamp).addEventListener("load", bindModal(form, formAction, timestamp, index), false) } var priceInfo = subscription.querySelector(".price-info") var buyingOption = toggle.parentElement if (toggle && form && priceInfo) { toggle.setAttribute("role", "button") toggle.setAttribute("tabindex", "0") toggle.addEventListener("click", function (event) { var expanded = toggle.getAttribute("aria-expanded") === "true" || false toggle.setAttribute("aria-expanded", !expanded) form.hidden = expanded if (!expanded) { buyingOption.classList.add("expanded") } else { buyingOption.classList.remove("expanded") } priceInfo.hidden = expanded }, false) } } function bindModal(form, formAction, timestamp, index) { var weHasBrowserSupport = window.fetch && Array.from return function() { var Buybox = EcommScripts ? EcommScripts.Buybox : null var Modal = EcommScripts ? EcommScripts.Modal : null if (weHasBrowserSupport && Buybox && Modal) { var modalID = "ecomm-modal_" + timestamp + "_" + index var modal = new Modal(modalID) modal.domEl.addEventListener("close", close) function close() { form.querySelector("button[type=submit]").focus() } var cartURL = "/cart" var cartModalURL = "/cart?messageOnly=1" form.setAttribute( "action", formAction.replace(cartURL, cartModalURL) ) var formSubmit = Buybox.interceptFormSubmit( Buybox.fetchFormAction(window.fetch), function(responseBody) { document.body.dispatchEvent(new Event("updatedCart")) Buybox.triggerModalAfterAddToCartSuccess(modal)(responseBody) }, function() { form.removeEventListener("submit", formSubmit, false) form.setAttribute( "action", formAction.replace(cartModalURL, cartURL) ) form.submit() } ) form.addEventListener("submit", formSubmit, false) document.body.appendChild(modal.domEl) } } } function initKeyControls() { document.addEventListener("keydown", function (event) { if (document.activeElement.classList.contains("buying-option-price") && (event.code === "Space" || event.code === "Enter")) { if (document.activeElement) { event.preventDefault() document.activeElement.click() } } }, false) } function initialStateOpen() { var buyboxWidth = buybox.offsetWidth ;[].slice.call(buybox.querySelectorAll(".buying-option")).forEach(function (option, index) { var toggle = option.querySelector(".buying-option-price") var form = option.querySelector(".buying-option-form") var priceInfo = option.querySelector(".price-info") if (buyboxWidth > 480) { toggle.click() } else { if (index === 0) { toggle.click() } else { toggle.setAttribute("aria-expanded", "false") form.hidden = "hidden" priceInfo.hidden = "hidden" } } }) } initialStateOpen() if (window.buyboxInitialised) return window.buyboxInitialised = true initKeyControls() })()

References

  1. Arora, S., Lund, C., Motwani, R., Sudan, M., Szegedy, M.: Proof Verification and Intractability of Approximation Problems. Journal of the ACM45, 501–555 (1992); Preliminary version in FOCS 1992

    Article MATH Google Scholar

  2. Arora, S., Safra, S.: Probabilistic Checkable Proofs: A New Characterization of NP. Journal of the ACM45, 70–122 (1992); Preliminary version in FOCS 1992

    Article MATH Google Scholar

  3. Arora, S., Sudan, M.: Improved low degree testing and its applications. In: STOC 1997, pp. 485–495 (1997)

    Google Scholar

  4. Blum, M., Feldman, P., Micali, S.: Non-interactive zero-knowledge and its applications. In: STOC 1988, pp. 103–112 (1988)

    Google Scholar

  5. Blum, M., Luby, M., Rubinfeld, R.: Self-Testing/Correcting with Applications to Numerical Problems. In: STOC 1990, pp. 73–83 (1990)

    Google Scholar

  6. Dent, A.W., Galbraith, S.D.: Hidden Pairings and Trapdoor DDH Groups. In: Dorigo, M., Gambardella, L.M., Birattari, M., Martinoli, A., Poli, R., Stützle, T. (eds.) ANTS 2006. LNCS, vol.4150, pp. 436–451. Springer, Heidelberg (2006)

    Google Scholar

  7. Feigenbaum, J., Fortnow, L., Laplante, S., Naik, A.V.: On Coherence, Random-self-reducibility, and Self-correction. Computational Complexity7(2), 174–191 (1998)

    Article MATH MathSciNet Google Scholar

  8. Gemmell, P., Lipton, R., Rubinfeld, R., Sudan, M., Wigderson, A.: Self-testing/correcting for polynomials and for approximate functions. In: STOC 1991, pp. 32–42 (1991)

    Google Scholar

  9. Gentry, C., Halevi, S., Vaikuntanathan, V.: A Simple BGN-Type Cryptosystem from LWE. In: Gilbert, H. (ed.) EUROCRYPT 2010. LNCS, vol.6110, pp. 506–522. Springer, Heidelberg (2010)

    Chapter Google Scholar

  10. Goldreich, O., Levin, L.: A Hard-Core Predicate for all One-Way Functions. In: STOC 1989, pp. 25–32 (1989)

    Google Scholar

  11. Hohenberger, S., Lysyanskaya, A.: How to Securely Outsource Cryptographic Computations. In: Kilian, J. (ed.) TCC 2005. LNCS, vol.3378, pp. 264–282. Springer, Heidelberg (2005)

    Chapter Google Scholar

  12. Lenstra Jr., H.W.: Factroing Integers with Elliptic Curves. Ann. Math.126, 649–673 (1987)

    Article MATH MathSciNet Google Scholar

  13. Maurer, U.M., Wolf, S.: The Relationship Between Breaking the Diffie-Hellman Protocol and Computing Discrete Logarithms. SIAM Journal of Computing28, 1689–1721 (1999)

    Article MATH MathSciNet Google Scholar

  14. Paillier, P.: Public-Key Cryptosystems Based on Composite Degree Residuosity Classes. In: Stern, J. (ed.) EUROCRYPT 1999. LNCS, vol.1592, pp. 223–238. Springer, Heidelberg (1999)

    Chapter Google Scholar

  15. Raz, R., Safra, S.: A subconstant error-probability low-degree test, and a subconstant error-probability PCP characterization of NP. In: STOC 1997, pp. 475–484 (1997)

    Google Scholar

  16. Rubinfeld, R., Sudan, M.: Robust characterizations of polynomials with applications to program testing. SIAM Journal of Computing25(2), 252–271 (1992); Preliminary version in SODA 1992

    Article MATH MathSciNet Google Scholar

  17. Shoup, V.: Lower Bounds for Discrete Logarithms and Related Problems. In: Fumy, W. (ed.) EUROCRYPT 1997. LNCS, vol.1233, pp. 256–266. Springer, Heidelberg (1997)

    Chapter Google Scholar

Download references

Self-correctors for Cryptographic Modules (2024)

FAQs

How to verify FIPS 140-2 compliance? ›

How to tell if it's real FIPS 140-2. The easiest way to determine if your CSP is FIPS 140-2 certified is to check the NIST Cryptographic Module Validation Program (CMVP) website. Click here to search for a company's name in NIST's Validated Modules database.

Is FIPS 140-2 still valid? ›

As of April 1, 2022, FIPS PUB 140-3 Security Requirements for Cryptographic Modules supersedes FIPS 140-2 for new submissions. Products certified to FIPS 140-2 can remain valid for 5 years after validation. See NIST transition page for more details.

What are the cryptographic algorithms for FIPS 140-3? ›

The cryptographic algorithms required for this level include AES (128-bit and 192-bit), Triple-DES (168-bit), SHA-2 (256-bit), and HMAC. This level requires the highest level of physical security to prevent unauthorized access and protect against attacks.

What is a cryptography module? ›

The set of hardware, software, and/or firmware that implements approved security functions (including cryptographic algorithms and key generation) and is contained within a cryptographic boundary.

What are FIPS 140-2 validated cryptographic modules? ›

FIPS 140-2 defines a cryptographic module as “the set of hardware, software, and/or firmware that implements approved security functions and is contained within the cryptographic boundary.”

What are the FIPS standards for cryptography? ›

FIPS 140-2 is a standard which handles cryptographic modules and the ones that organizations use to encrypt data-at-rest and data-in-motion. FIPS 140-2 has 4 levels of security, with level 1 being the least secure, and level 4 being the most secure: FIPS 140-2 Level 1- Level 1 has the simplest requirements.

Why is FIPS not recommended? ›

Note that FIPS 140-2 mode is no longer recommended, via Microsoft, as the industry standard as it requires adhering to algorithms and practices which have not been revised since 2002. Certification would require strict adherence to only these encryption methods and as such it is no longer enforced as the default.

What is the ISO standard for cryptographic modules? ›

ISO/IEC 19790 is an ISO/IEC standard for security requirements for cryptographic modules. It addresses a wide range of issues regarding their implementation, including specifications, interface definitions, authentication, operational and physical security, configuration management, testing, and life-cycle management.

Is Microsoft authenticator FIPS 140-2 compliant? ›

Microsoft Authenticator on Android is currently pending FIPS compliance certification to support our customers that may require FIPS validated cryptography. The Microsoft Authenticator app on iOS is already FIPS-140 compliant, as announced in December of 2022.

How do I enable FIPS cryptography? ›

Setting the FIPS Configuration Property

To use the group policy setting, open the Group Policy Editor, navigate to Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options, and enable the System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing setting.

What is authentication to a cryptographic module? ›

A cryptographic module authenticates the identity of an operator and verifies that the identified operator is authorized to assume a specific role and perform a corresponding set of services.

How does the crypto module work? ›

we can use this module in two ways either for the hashing or either use in encryption and decryption of the data. There are a lot of algorithms available for hashing as well as encryption and decryption of the data. Using a crypto module for Hashing the data: Javascript.

How do you study cryptography? ›

Those who want to understand how to learn cryptography or how to pursue cryptography careers may start with a bachelor's in computer science, information technology, mathematics, or cybersecurity, or cybersecurity bootcamps. From there, a learner could narrow their focus to cryptography.

How do you ensure FIPS compliance? ›

FIPS compliance means a product meets all the necessary security requirements established by the U.S. government for protecting sensitive information. To be FIPS-compliant, a product must adhere to rigid standards, pass rigorous testing, and be certified by NIST.

How to check if FIPS is enabled or not? ›

Open up your registry editor and navigate to HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Enabled. If the Enabled value is 0 then FIPS is not enabled. If the Enabled value is 1 then FIPS is enabled.

How do I verify FIPS mode in Windows? ›

Verify that FIPS-CC mode is enabled on your GlobalProtect app.
  1. Launch the GlobalProtect app.
  2. From the status panel, open the settings dialog ( ).
  3. Select. About. .
  4. Verify that FIPS-CC mode is enabled. If FIPS-CC mode is enabled, the About dialog displays the. FIPS-CC Mode Enabled. status.

Top Articles
Latest Posts
Article information

Author: Greg O'Connell

Last Updated:

Views: 6294

Rating: 4.1 / 5 (42 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Greg O'Connell

Birthday: 1992-01-10

Address: Suite 517 2436 Jefferey Pass, Shanitaside, UT 27519

Phone: +2614651609714

Job: Education Developer

Hobby: Cooking, Gambling, Pottery, Shooting, Baseball, Singing, Snowboarding

Introduction: My name is Greg O'Connell, I am a delightful, colorful, talented, kind, lively, modern, tender person who loves writing and wants to share my knowledge and understanding with you.