Hardware-based encryption: Difference between revisions

Content deleted Content added
RussBot (talk | contribs)
m Bot: Change redirected category Hardware to Computer hardware
fix link
Line 6:
|caption = The [[IBM 4758]] Cryptographic Module
}}
Hardware-based encryption is the use of [[Computer Hardware]] to assist software, or sometimes replace software, in the process of data [[encryption]]. Typically, this is implemented as part of the [[CPU|processor]]'s instruction set. For example, the [[Advanced Encryption Standard|AES]] encryption algorithm (a modern [[cipher]]) can be implemented using the [[AES instruction set]] on the ubiquitous [[x86]] architecture.<ref name="Intel AES Instructions">{{cite book|title=Intel® 64 and IA-32 Architectures Software Developer’s Manual|date={{date|December 2017}}|url=https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf|publisher=Intel|pages=303-309,410}}</ref> Such instructions also exist on the [[ARM]] architecture]].<ref name="cortex cryptography">{{cite book|title=ARM® Cortex®-A57 MPCore Processor Cryptography Extension|date={{date|2017-12-17}}|publisher=ARM Holdings|url=http://infocenter.arm.com/help/topic/com.arm.doc.ddi0514g/DDI0514G_cortex_a57_mpcore_cryptography_trm.pdf}}</ref> However, more unusual systems exist where the cryptography module is separate from the central processor, instead being implemented as a [[coprocessor]], in particular a [[secure cryptoprocessor]], of which an example is the [[IBM 4764]]<ref name="IBM 4764">{{cite web|url=https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_61/rzajc/rzajcco4758.htm|title=4764 Cryptographic Coprocessor|publisher=IBM|access-date={{date|2018-01-20}}}}</ref>. Hardware implementations can be faster and less prone to exploitation than traditional software implementations, and furthermore can be protected against tampering.<ref name="performance">{{cite web|title=AES-NI Performance Analyzed|url=http://www.tomshardware.com/reviews/clarkdale-aes-ni-encryption,2538.html|publisher=Tom's Hardware|year=2010|author=P. Schmid and A. Roos |accessdate={{date|2018-01-20}}}}</ref> However, hardware implementations use additional space on the processor die, and any security vulnerability (such as [[Spectre (security vulnerability)|Spectre]]) cannot be solved with a software update.<ref name="MeltdownSpectre">{{Cite web |author=Staff |url=https://spectreattack.com/ |title=Meltdown and Spectre |date=2018 |work=[[Graz University of Technology]] |access-date={{date|2018-01-20}} |dead-url=no |archive-url=https://web.archive.org/web/20180103221345/https://spectreattack.com/ |archive-date={{date|2018-01-03}}}}</ref>
== History ==
Hardware-based encryption arguably began in the 1987 with the ABYSS (A Basic Yorktown Security System) project<ref>{{cite web|url=https://www.computer.org/csdl/proceedings/sp/1987/0771/00/07710038.pdf|title=ABYSS: A Trusted Architecture for Software Protection|access-date={{date|2018-01-20}}}}</ref><ref name="building 4758">{{cite web|url=http://www.research.ibm.com/people/s/sailer/publications/2001/ibm4758.pdf|title=Building the IBM 4758 Secure Coprocessor |access-date={{date|2018-01-20}}|publisher=[[IBM]]}}</ref>. The aim of this project was to protect against [[Software Piracy]]. However, the application of computers to cryptography in general dates back to the 1940's and [[Bletchley Park]], where the [[Colossus computer]] was used to break the encryption used by German High Command during [[World War 2]]. The use of computers to ''encrypt'', however, came later. In particular, until the development of the [[Intergrated Circuit]], of which the first was produced in 1960, computers were impractical for encryption, since, in comparison to the portable [[form factor (design)|form factor]] of the [[Enigma machine]],<ref>{{cite web|url=http://www.cryptomuseum.com/kits/enigma/support/files/case.pdf|publisher=Crypto Museum|title=Enigma-E case|access-date={{date|2018-01-20}}}}</ref> Computers of the era took the space of an entire building. It was only with the development of the [[Microcomputer]] that computer encryption became feasible, outside of niche applications. The development of the [[World Wide Web]] lead to the need for consumers to have access to encryption, as [[Online Shopping]] became prevalent.<ref name="consumers">{{cite web | url=http://ecommercenews.eu/consumers-online-shopping-expectations/ | title=Consumers and their online shopping expectations – Ecommerce News | date={{date|2015-2-20}}| accessdate={{date|2016-08-29}}}}</ref> The key concerns for consumers were security and speed.<ref name="consumers" /> This lead to the eventual inclusion of the key algorithms into processors as a way of both increasing speed and security.<ref name="performance" />
Line 14:
{{Main|AES instruction set|Intel SHA extensions}}
The X86 [[Computer architecture|architecture]], as a [[Complex instruction set computer|CISC (Complex Instruction Set Computer)]] Architecture, typically implements complex [[algorithms]] in hardware. Cryptographic algorithms are no exception. The x86 architecture implements significant components of the [[Advanced Encryption Standard|AES (Advanced&nbsp;Encryption&nbsp;Standard)]] algorithm, which can be used by the [[NSA]] for [[Top Secret]] information.<ref>{{cite web|url=http://csrc.nist.gov/groups/ST/toolkit/documents/aes/CNSS15FS.pdf |title=National Policy on the Use of the Advanced Encryption Standard (AES) to Protect National Security Systems and National Security Information |author=Lynn Hathaway |date={{date|June 2003}}|format=PDF |access-date={{date|2011-02-15}}}}</ref> The architecture also includes support for the [[Secure Hash Algorithms|SHA]] Hashing Algorithms through the [[Intel SHA extensions]].<ref name="Intel AES Instructions" /> Whereas AES is a cipher, which is useful for encrypting documents, [[Hashing]] is used for verification, such as of passwords (see [[PBKDF2]]).
==== [[ARM]] ====
ARM processors can optionally support Security Extensions. Although ARM is a [[RISC|RISC (Reduced Instruction Set Computer)]] architecture, there are several optional extensions specified by [[ARM Holdings]].<ref name="cortex cryptography" /><ref name="openwrt">[http://wiki.openwrt.org/doc/hardware/cryptographic.hardware.accelerators Cryptographic Hardware Accelerators] on OpenWRT.org</ref>