<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic RSA Encryption in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/RSA-Encryption/m-p/974617#M20846</link>
    <description>&lt;P&gt;I'm trying to find some easy-to-follow RSA key-generation, encryption/decryption examples.&lt;/P&gt;

&lt;P&gt;What I've found are&lt;/P&gt;

&lt;P&gt;&lt;A href="http://software.intel.com/en-us/node/503498" target="_blank"&gt;http://software.intel.com/en-us/node/503498&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;and&lt;/P&gt;

&lt;P&gt;&lt;A href="http://software.intel.com/en-us/node/503457" target="_blank"&gt;http://software.intel.com/en-us/node/503457&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;Firstly, I'm not sure why (for example)&lt;/P&gt;

&lt;PRE&gt;// Q prime factor
BigNumber    Q("0xC97FB1F027F453F6341233EAAAD1D9353F6C42D08866B1D05A0F2035028B9D86"
                 "9840B41666B42E92EA0DA3B43204B5CFCE3352524D0416A5A441E700AF461503");
&lt;/PRE&gt;

&lt;P&gt;This appear to be constants -- I'm assuming that these values are created by the RSA key generation procedure?&lt;/P&gt;

&lt;P&gt;I can't get the samples to build as they are on the Intel site (I'm using IPP 8.1 on Windows FYI). I get the following errors:&lt;/P&gt;

&lt;P&gt;error C2660: 'ippsPrimeGen' : function does not take 1 arguments&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IppsPrimeState* pPrimeG = ippsPrimeGen(P.BitSize());&lt;/P&gt;

&lt;P&gt;and&lt;/P&gt;

&lt;P&gt;1&amp;gt;rsa.cpp(83): error C3861: 'deletePrimeGen': identifier not found&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deletePrimeGen(pPrimeG);&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Am I using the right samples for 8.1?&lt;/P&gt;

&lt;P&gt;Are there better examples available -- I'm trying to find a good example that shows the end-to-end process or creating private/public key, using keys for encyption and decryption...&lt;/P&gt;

&lt;P&gt;Any pointers greatly appreciated.&lt;/P&gt;</description>
    <pubDate>Tue, 08 Apr 2014 21:00:09 GMT</pubDate>
    <dc:creator>Kryten67</dc:creator>
    <dc:date>2014-04-08T21:00:09Z</dc:date>
    <item>
      <title>RSA Encryption</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/RSA-Encryption/m-p/974617#M20846</link>
      <description>&lt;P&gt;I'm trying to find some easy-to-follow RSA key-generation, encryption/decryption examples.&lt;/P&gt;

&lt;P&gt;What I've found are&lt;/P&gt;

&lt;P&gt;&lt;A href="http://software.intel.com/en-us/node/503498" target="_blank"&gt;http://software.intel.com/en-us/node/503498&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;and&lt;/P&gt;

&lt;P&gt;&lt;A href="http://software.intel.com/en-us/node/503457" target="_blank"&gt;http://software.intel.com/en-us/node/503457&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;Firstly, I'm not sure why (for example)&lt;/P&gt;

&lt;PRE&gt;// Q prime factor
BigNumber    Q("0xC97FB1F027F453F6341233EAAAD1D9353F6C42D08866B1D05A0F2035028B9D86"
                 "9840B41666B42E92EA0DA3B43204B5CFCE3352524D0416A5A441E700AF461503");
&lt;/PRE&gt;

&lt;P&gt;This appear to be constants -- I'm assuming that these values are created by the RSA key generation procedure?&lt;/P&gt;

&lt;P&gt;I can't get the samples to build as they are on the Intel site (I'm using IPP 8.1 on Windows FYI). I get the following errors:&lt;/P&gt;

&lt;P&gt;error C2660: 'ippsPrimeGen' : function does not take 1 arguments&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IppsPrimeState* pPrimeG = ippsPrimeGen(P.BitSize());&lt;/P&gt;

&lt;P&gt;and&lt;/P&gt;

&lt;P&gt;1&amp;gt;rsa.cpp(83): error C3861: 'deletePrimeGen': identifier not found&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deletePrimeGen(pPrimeG);&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Am I using the right samples for 8.1?&lt;/P&gt;

&lt;P&gt;Are there better examples available -- I'm trying to find a good example that shows the end-to-end process or creating private/public key, using keys for encyption and decryption...&lt;/P&gt;

&lt;P&gt;Any pointers greatly appreciated.&lt;/P&gt;</description>
      <pubDate>Tue, 08 Apr 2014 21:00:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/RSA-Encryption/m-p/974617#M20846</guid>
      <dc:creator>Kryten67</dc:creator>
      <dc:date>2014-04-08T21:00:09Z</dc:date>
    </item>
    <item>
      <title>hi Paul,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/RSA-Encryption/m-p/974618#M20847</link>
      <description>&lt;P&gt;hi Paul,&lt;/P&gt;

&lt;OL&gt;
	&lt;LI&gt;“This appear to be constants -- I'm assuming that these values are created by the RSA key generation procedure?”&lt;/LI&gt;
&lt;/OL&gt;

&lt;P style="margin-left: 36pt;"&gt;Definitely RSA parameters were generated by some RSA key generation procedure.&lt;/P&gt;

&lt;OL&gt;
	&lt;LI value="2"&gt;“I get the following errors: error C2660: 'ippsPrimeGen' : function does not take 1 arguments &amp;nbsp; IppsPrimeState* pPrimeG = ippsPrimeGen(P.BitSize()); “&lt;/LI&gt;
&lt;/OL&gt;

&lt;P style="margin-left: 36pt;"&gt;I see the typo: &lt;STRONG&gt;ipps&lt;/STRONG&gt;PrimeGen instead of &lt;STRONG&gt;new&lt;/STRONG&gt;PrimeGen&lt;/P&gt;

&lt;OL&gt;
	&lt;LI value="3"&gt;“rsa.cpp(83): error C3861: 'deletePrimeGen': identifier not found &amp;nbsp;&amp;nbsp; deletePrimeGen(pPrimeG);”&lt;/LI&gt;
&lt;/OL&gt;

&lt;P style="margin-left: 36pt;"&gt;Agree. No deletePrimeGen() propotype. I’ve send an update to the manual - will be available in the next release&lt;/P&gt;

&lt;OL&gt;
	&lt;LI value="4"&gt;“Am I using the right samples for 8.1?”&lt;/LI&gt;
&lt;/OL&gt;

&lt;P style="margin-left: 36pt;"&gt;Samples are working in general.&lt;/P&gt;

&lt;OL&gt;
	&lt;LI value="5"&gt;“I'm trying to find a good example that shows the end-to-end process or creating private/public key, using keys for encyption and decryption...”&lt;/LI&gt;
&lt;/OL&gt;

&lt;P style="margin-left: 36pt;"&gt;Use ippCP manual and try something like the following to generate RSA-1024 (it's just a scheme - haven't tried to compile)&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; int factorP_bits = 512;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; int factorP_bits = 1024;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; int rsa_bits = factorP_bits + factorQ_bits;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; // random generator&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; IppsPRNGState* pRand = newPRNG();&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; // prime generator&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; IppsPrimeState* pPrimeG = newPrimeGen(factorP_bits);&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; // RSA modulus and public exponent&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; BigNumber N(0, BITSIZE_WORD(rsa_bits));&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; BigNumber E;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; // private type2 RSA&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; int prvSize;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; ippsRSA_GetSizePrivateKeyType2(factorP_bits, factorQ_bits, &amp;amp;prvSize);&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; IppsRSAPrivateKeyState* pPrvKey = (IppsRSAPrivateKeyState*)(new Ipp8u [prvSize]);&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; ippsRSA_InitPrivateKeyType2(factorP_bits, factorQ_bits, pPrvKey, prvSize);&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; // scratch buffer&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; int bufSize;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; ippsRSA_GetBufferSizePrivateKey(&amp;amp;bufSize, pPrvKey);&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; Ipp8u* pBuffer = new Ipp8u [bufSize];&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; // init value of the public exponent&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; BigNumber E0(3);&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; // generate RSA system&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; do {&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sts = ippsRSA_GenerateKeys(E0, N, E, NULL,&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPrvKey,&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pBuffer,&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50,&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPrimeGen,&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ippsPRNGen, pPRNG)&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;&amp;nbsp;&amp;nbsp; } while(sts!=ippStsNoErr);&lt;/P&gt;

&lt;P style="margin-left: 36pt;"&gt;regards, Igor&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Apr 2014 12:20:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/RSA-Encryption/m-p/974618#M20847</guid>
      <dc:creator>Igor_A_Intel</dc:creator>
      <dc:date>2014-04-17T12:20:51Z</dc:date>
    </item>
    <item>
      <title>Thanks!</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/RSA-Encryption/m-p/974619#M20848</link>
      <description>&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Fri, 09 May 2014 16:41:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/RSA-Encryption/m-p/974619#M20848</guid>
      <dc:creator>Kryten67</dc:creator>
      <dc:date>2014-05-09T16:41:44Z</dc:date>
    </item>
    <item>
      <title>Re: RSA Encryption</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/RSA-Encryption/m-p/1289367#M27702</link>
      <description>&lt;P&gt;There are several problems in the above approximation.&amp;nbsp; It would be nice to have a working example posted here, or at least a link to one&lt;/P&gt;</description>
      <pubDate>Sun, 13 Jun 2021 06:39:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/RSA-Encryption/m-p/1289367#M27702</guid>
      <dc:creator>bevin_b_</dc:creator>
      <dc:date>2021-06-13T06:39:09Z</dc:date>
    </item>
    <item>
      <title>Re: RSA Encryption</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/RSA-Encryption/m-p/1289751#M27703</link>
      <description>&lt;P&gt;IPP Crypto samples are available here:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/intel/ipp-crypto/tree/develop/examples" target="_blank"&gt;https://github.com/intel/ipp-crypto/tree/develop/examples&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Jun 2021 19:46:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/RSA-Encryption/m-p/1289751#M27703</guid>
      <dc:creator>Abhinav_S_Intel</dc:creator>
      <dc:date>2021-06-14T19:46:24Z</dc:date>
    </item>
  </channel>
</rss>

