<?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 Encrypting Page Eviction VS Encrypting Cache Line Eviction in Intel® Software Guard Extensions (Intel® SGX)</title>
    <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Encrypting-Page-Eviction-VS-Encrypting-Cache-Line-Eviction/m-p/1161513#M2873</link>
    <description>&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;There is such a thing that confuses me that, data need to be encrypted both at page eviction and cache line eviction.&lt;/P&gt;&lt;P&gt;I am aware of the fact that those two things doesn't go together.&lt;/P&gt;&lt;P&gt;Page eviction is done by system software using the EWB instruction. The major differences for a SGX program from a regular program page eviction are&amp;nbsp;that (1) data need&amp;nbsp;to be encrypted and (2) Eviction happens from EPC to un-trusted memory&amp;nbsp;first (3) Version Array is used for tracking. The encryption is probably implemented by CPU logic that support the EWB instruction --&amp;gt;&amp;nbsp;(&lt;STRONG&gt;Could you help me verify that?&lt;/STRONG&gt;)&lt;/P&gt;&lt;P&gt;Meanwhile, when a cache line is evicted (which is controlled purely by HW micro-architecture, not by SW &amp;amp; some instructions), this cache line also needs to be encrypted before sending it to main memory. This is implemented by a separate HW component from CPU (though they could reside in the same die) detailed in this paper: &lt;A href="https://eprint.iacr.org/2016/204.pdf"&gt;A Memory Encryption Engine Suitable for General Purpose Processors&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Could you just&amp;nbsp;help me&amp;nbsp;make sure that those two encryption activities are totally unrelated?&lt;/STRONG&gt;&amp;nbsp;I guess they should be... I don't know why I raise this question... Since page eviction and cache line eviction belong to two different architectural layers. They are probably also implemented differently. But even in that case, the fact that data in the CPU might have the&amp;nbsp;chance to be encrypted twice still makes it a little weird yet I don't know why...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 12 Sep 2019 05:12:28 GMT</pubDate>
    <dc:creator>He__Yi</dc:creator>
    <dc:date>2019-09-12T05:12:28Z</dc:date>
    <item>
      <title>Encrypting Page Eviction VS Encrypting Cache Line Eviction</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Encrypting-Page-Eviction-VS-Encrypting-Cache-Line-Eviction/m-p/1161513#M2873</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;There is such a thing that confuses me that, data need to be encrypted both at page eviction and cache line eviction.&lt;/P&gt;&lt;P&gt;I am aware of the fact that those two things doesn't go together.&lt;/P&gt;&lt;P&gt;Page eviction is done by system software using the EWB instruction. The major differences for a SGX program from a regular program page eviction are&amp;nbsp;that (1) data need&amp;nbsp;to be encrypted and (2) Eviction happens from EPC to un-trusted memory&amp;nbsp;first (3) Version Array is used for tracking. The encryption is probably implemented by CPU logic that support the EWB instruction --&amp;gt;&amp;nbsp;(&lt;STRONG&gt;Could you help me verify that?&lt;/STRONG&gt;)&lt;/P&gt;&lt;P&gt;Meanwhile, when a cache line is evicted (which is controlled purely by HW micro-architecture, not by SW &amp;amp; some instructions), this cache line also needs to be encrypted before sending it to main memory. This is implemented by a separate HW component from CPU (though they could reside in the same die) detailed in this paper: &lt;A href="https://eprint.iacr.org/2016/204.pdf"&gt;A Memory Encryption Engine Suitable for General Purpose Processors&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Could you just&amp;nbsp;help me&amp;nbsp;make sure that those two encryption activities are totally unrelated?&lt;/STRONG&gt;&amp;nbsp;I guess they should be... I don't know why I raise this question... Since page eviction and cache line eviction belong to two different architectural layers. They are probably also implemented differently. But even in that case, the fact that data in the CPU might have the&amp;nbsp;chance to be encrypted twice still makes it a little weird yet I don't know why...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Sep 2019 05:12:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Encrypting-Page-Eviction-VS-Encrypting-Cache-Line-Eviction/m-p/1161513#M2873</guid>
      <dc:creator>He__Yi</dc:creator>
      <dc:date>2019-09-12T05:12:28Z</dc:date>
    </item>
  </channel>
</rss>

