Potential for signature integrity compromise in Intel® Integrated Performance Primitives (Intel® IPP) Cryptography Domain

Intel ID:  INTEL-SA-00033
Product family:  The cryptography (CP) domain in Intel® Integrated Performance Primitives (Intel® IPP)
Impact of vulnerability Information Disclosure
Severity rating Moderate
Original release:  Sep 11, 2012
Last revised:  Sep 11, 2012
Summary: 

The cryptography (CP) domain in Intel’s newest version of Intel® Integrated Performance Primitives (Intel® IPP) v7.1 has been enhanced to improve its security and customers are strongly urged to update to this release.

Description: 

Intel IPP v7.1 introduces Intel® AVX & Intel® AVX2 performance optimizations for faster floating-point and integer operations in the signal processing and image processing domains. Additional Improvements have been made to the CP domain including AES key expansion, RSA-based signature generation and ECC prime field point multiplication. Customers can get these security improvements by linking with v7.1 of Intel® IPP. For additional information on performance impact to RSA and ECC functions, please see the Recommendations below.

Affected products: 

The cryptography (CP) domain in Intel® Integrated Performance Primitives (Intel® IPP) versions prior to 7.1.

Recommendations: 

Customers are strongly urged to update to version 7.1 which can be obtained from this URL: http://software.intel.com/en-us/articles/download-ipp-cryptography-libraries/

To mitigate the potential reduction in performance, some source code changes are recommended for RSA functions. The following RSA functions can be can be initialized two different ways:

  • private key pair:
    • ippsRSASetKey(pD, ippRSAkeyD, pRSA)
    • ippsRSASetKey(pN, ippRSAkeyN, pRSA)
  • private key quintuple:
    • ippsRSASetKey(pP, ippRSAkeyP, pRSA)
    • ippsRSASetKey(pQ, ippRSAkeyQ, pRSA)
    • ippsRSASetKey(pdP, ippRSAkeyDpP, pRSA)
    • ippsRSASetKey(pdQ, ippRSAkeyDq, pRSA)
    • ippsRSASetKey(pQinv, ippRSAkeyQinv, pRSA)

If a private key quintuple is used, code changes should be made to additionally provide the private exponent by the calling ippsRSASetKey(pE, ippRSAkeyE, pRSA) function to avoid a 3-4x performance penalty to RSA Sign operations.

Finally for ECC functions some performance degradation, perhaps up to 10%, may be expected for the functions:

  • ippsECCPMulPointScalar()
  • ippsECCPGenKeyPair()
  • ippsECCPPublicKey()
  • ippsECCPValidateKeyPair()
  • ippsECCPSharedSecretDH()
  • ippsECCPSharedSecretDHC()

At this time there is no known mitigation for this performance impact in ECC.

Revision history: 

Revision
Date
Description
 1.0
 11-September-2012
 Initial Release

 

Related Information:

Optimization Notice                                                                                         Notice revision #20110804

Intel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.


Disclaimer:

INFORMATION IN THIS DOCUMENT IS PROVIDED “AS IS” IN CONNECTION WITH INTEL® PRODUCTS. YOUR USE OF THE INFORMATION IN THE DOCUMENT OR MATERIALS LINKED FROM THE DOCUMENT IS AT YOUR OWN RISK. INTEL RESERVES THE RIGHT TO CHANGE OR UPDATE THIS DOCUMENT AT ANY TIME. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT.



Reporting a security issue

If you have information about a security issue or vulnerability with an Intel product, please send an e-mail to secure@intel.com. Encrypt sensitive information using our PGP public key.

For issues related to Intel managed open source projects, please visit http://www.01.org/security.

Please provide as much information as possible, including:

  • The products and versions affected
  • Detailed description of the vulnerability
  • Information on known exploits

  • A member of the Intel Product Security Team will review your e-mail and contact you to collaborate on resolving the issue. For more information on how Intel works to resolve security issues, see:

  • Vulnerability handling guidelines

  • Need product support?
    The secure@intel.com e-mail address should only be used for reporting security issues.

    If you...
  • Have questions about the security features of an Intel product
  • Require technical support
  • Want product updates or patches

  • Please visit Support & Downloads.