<?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 key usage difference in Intel® Software Guard Extensions (Intel® SGX)</title>
    <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/key-usage-difference/m-p/1167541#M3095</link>
    <description>&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Who can explain clearly about the following key usage and difference? It is strange I can't find any &lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;explanations&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;in the document.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;SGX_RA_KEY_MK, SGX_RA_KEY_SK, &amp;nbsp;SGX_RA_VK.&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Launch key,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;Provisioning key,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;Provisioning seal key, &lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;Report key, &lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;Seal key.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Peter&lt;/P&gt;</description>
    <pubDate>Wed, 16 Aug 2017 10:16:27 GMT</pubDate>
    <dc:creator>peter_c_1</dc:creator>
    <dc:date>2017-08-16T10:16:27Z</dc:date>
    <item>
      <title>key usage difference</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/key-usage-difference/m-p/1167541#M3095</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Who can explain clearly about the following key usage and difference? It is strange I can't find any &lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;explanations&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;in the document.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;SGX_RA_KEY_MK, SGX_RA_KEY_SK, &amp;nbsp;SGX_RA_VK.&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Launch key,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;Provisioning key,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;Provisioning seal key, &lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;Report key, &lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;Seal key.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Peter&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2017 10:16:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/key-usage-difference/m-p/1167541#M3095</guid>
      <dc:creator>peter_c_1</dc:creator>
      <dc:date>2017-08-16T10:16:27Z</dc:date>
    </item>
    <item>
      <title>Hi Peter,</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/key-usage-difference/m-p/1167542#M3096</link>
      <description>&lt;P&gt;Hi Peter,&lt;/P&gt;

&lt;UL style="color: rgb(96, 96, 96); font-size: 13.008px;"&gt;
	&lt;LI&gt;SK (Signing Key/Symmetric Key)&lt;/LI&gt;
	&lt;LI&gt;MK (Master Key/Masking Key)&lt;/LI&gt;
	&lt;LI&gt;SMK (SIGMA protocol)&lt;/LI&gt;
	&lt;LI&gt;VK: Verification key&lt;/LI&gt;
	&lt;LI&gt;ISV can use the&amp;nbsp;sgx_ra_init_ex&amp;nbsp;API to provide a callback function to generate the remote attestation keys used in the SIGMA protocol (SMK) and returned by the API&amp;nbsp;sgx_ra_get_keys&amp;nbsp;(SK, MK, and VK).&amp;nbsp;The decision to use a different KDF is a policy of the ISV, but it should be approved by the ISV’s security process.&amp;nbsp;&lt;/LI&gt;
	&lt;LI&gt;sgx_ ra_derive_secret_keys_t function takes the Diffie-Hellman shared secret as input to allow the ISV enclave to generate their own derived shared keys (SMK, SK, MK and VK).&lt;/LI&gt;
	&lt;LI&gt;VK is derived &amp;nbsp;from the Diffie-Hellman shared secret elliptic curve field element between the service provider and &amp;nbsp;the application enclave.&lt;BR /&gt;
		VK &amp;nbsp;= AES-CMAC (0x00, gab &amp;nbsp;x coordinate|| 0x03)&lt;/LI&gt;
	&lt;LI&gt;Remote Attestation context was generated by sgx_ra_init, the returned&amp;nbsp;&lt;SPAN style="font-weight: 700;"&gt;SGX_RA_ KEY_MK, SGX_RA_KEY_SK&lt;/SPAN&gt;&amp;nbsp;or&amp;nbsp;&lt;SPAN style="font-weight: 700;"&gt;SGX_RA_VK&lt;/SPAN&gt;&amp;nbsp;is derived from the Diffie-Hellman shared secret elliptic curve field element between the service provider and the application enclave using the following Key Derivation Function (KDF):
		&lt;UL&gt;
			&lt;LI&gt;KDK = AES-CMAC(key0, gab x-coordinate)&lt;/LI&gt;
			&lt;LI&gt;SGX_RA_KEY_VK = AES-CMAC(KDK, 0x01||’VK’||0x00||0x80||0x00)&lt;/LI&gt;
			&lt;LI&gt;SGX_RA_KEY_MK = AES-CMAC(KDK, 0x01||’MK’||0x00||0x80||0x00)&lt;/LI&gt;
			&lt;LI&gt;SGX_RA_KEY_SK = AES-CMAC(KDK, 0x01||’SK’||0x00||0x80||0x00)&lt;/LI&gt;
		&lt;/UL&gt;
	&lt;/LI&gt;
	&lt;LI&gt;The key0 used in the key extraction operation is 16 bytes of 0x00. The plain text used in the Key derivation calculation is the Diffie-Hellman shared secret elliptic curve field element in Little Endian format.&lt;/LI&gt;
	&lt;LI&gt;The plain text used in each key calculation includes:
		&lt;UL&gt;
			&lt;LI&gt;a counter (0x01)&lt;/LI&gt;
			&lt;LI&gt;a label: the ASCII representation of one of the strings 'VK', 'MK' or 'SK' in Little Endian format&lt;/LI&gt;
			&lt;LI&gt;a bit length (0x80)&lt;/LI&gt;
		&lt;/UL&gt;
	&lt;/LI&gt;
&lt;/UL&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Regards&lt;/P&gt;

&lt;P&gt;Shivananda&lt;/P&gt;</description>
      <pubDate>Thu, 17 Aug 2017 05:59:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/key-usage-difference/m-p/1167542#M3096</guid>
      <dc:creator>Shivananda_H_Intel</dc:creator>
      <dc:date>2017-08-17T05:59:12Z</dc:date>
    </item>
    <item>
      <title>Hi Shivananda,</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/key-usage-difference/m-p/1167543#M3097</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;SPAN style="font-size: 12px;"&gt;Shivananda,&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;Thanks for your reply firstly. but I am still confused about key usage. I want to know&amp;nbsp;where/when/how to use them? Hope we have some documents about key usage.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;Another question, which key (&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;Launch key,&amp;nbsp;Provisioning key,&amp;nbsp;Provisioning seal key, Report key, Seal key.) &lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;is device-specific key?&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;
	&lt;SPAN style="font-size: 12px;"&gt;Peter&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 18 Aug 2017 08:09:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/key-usage-difference/m-p/1167543#M3097</guid>
      <dc:creator>peter_c_1</dc:creator>
      <dc:date>2017-08-18T08:09:57Z</dc:date>
    </item>
  </channel>
</rss>

