Our client is a leading security software provider for Europe and the Americas, offering security solutions to top banks, retailers, software companies, manufacturing giants, healthcare companies and other major enterprises. Their solutions protect both unstructured data, such as files in a filesystem, and structured data, as in databases. Their products are compatible with major Unix and Windows variants and operate within the kernel or user space based on the security assurances required by their clientele.
Unser Kunde ist ein führender Anbieter von Sicherheitssoftware in Europa und Nord- und Südamerika, der Sicherheitslösungen für führende Banken, Einzelhändler, Softwareunternehmen, Produktionsgiganten, Unternehmen des Gesundheitswesens und andere Großunternehmen anbietet. Die Lösungen des Unternehmens schützen sowohl unstrukturierte Daten, wie z. B. Dateien in einem Dateisystem, als auch strukturierte Daten, z. B. in Datenbanken. Ihre Produkte sind mit den wichtigsten Unix- und Windows-Varianten kompatibel und arbeiten im Kernel oder im Benutzerbereich, je nachdem, welche Sicherheitsgarantien ihre Kunden benötigen.
The client’s product, running in user space and protecting the filesystem with FUSE, is deployed as a pod in the Kubernetes environment on Amazon Cloud. Initially designed for x86-64, the client sought to transition their Kubernetes pods to ARMv8 processor-based AMI instances to reduce expenses for their clients.
To achieve this, the client required assistance with:
Integrating the above port into the product.
Setting up cross-compilation infrastructure to port the product.
Porting the crypto module, originally written using AVX2 and AESNI processor features, to ARMv8.
Implementing SHA-256 using ARMv8 cryptographic extensions.
Das Produkt des Kunden, das im Benutzerbereich läuft und das Dateisystem mit FUSE schützt, wird als Pod in der Kubernetes-Umgebung in der Amazon Cloud bereitgestellt. Ursprünglich für x86-64 konzipiert, wollte der Kunde seine Kubernetes-Pods auf AMI-Instanzen mit ARMv8-Prozessor umstellen, um die Kosten für seine Kunden zu senken.
Um dies zu erreichen, benötigte der Kunde Unterstützung bei:
Einrichtung einer Cross-Compilation-Infrastruktur zur Portierung des Produkts.
Integration der oben genannten Portierung in das Produkt.
Portierung des Krypto-Moduls, das ursprünglich mit AVX2 und AESNI-Prozessorfunktionen geschrieben wurde, auf ARMv8.
Implementierung von SHA-256 unter Verwendung der kryptographischen Erweiterungen von ARMv8.
The following are the four functions exposed for implementing SHA-256:
uint32x4_t vsha256hq_u32(uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk);
uint32x4_t vsha256h2q_u32(uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk);
uint32x4_t vsha256su0q_u32(uint32x4_t w0_3, uint32x4_t w4_7);
uint32x4_t vsha256su1q_u32(uint32x4_t tw0_3, uint32x4_t w8_11, uint32x4_t w12_15);
ARMv8 comes with SIMD instructions that help in parallelizing AES encryption and SHA-1, SHA-224, and SHA-256. These instructions are exposed as intrinsic functions and C language extensions can be used to implement them, providing acceleration for cryptographic functions.
Utilized the above functions to implement the SHA-256 cryptographic module.
Integrated the new SHA-256 module into the client’s product.
Set up cross-compilation infrastructure to facilitate the porting process.
Im Folgenden sind die vier Funktionen zur Implementierung von SHA-256 aufgeführt:
uint32x4_t vsha256hq_u32(uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk);
uint32x4_t vsha256h2q_u32(uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk);
uint32x4_t vsha256su0q_u32(uint32x4_t w0_3, uint32x4_t w4_7;
uint32x4_t vsha256su1q_u32(uint32x4_t tw0_3, uint32x4_t w8_11, uint32x4_t w12_15);
ARMv8 verfügt über SIMD-Anweisungen, die bei der Parallelisierung von AES-Verschlüsselung und SHA-1, SHA-224 und SHA-256 helfen. Diese Befehle sind als intrinsische Funktionen offengelegt und können mit C-Spracherweiterungen implementiert werden, um kryptografische Funktionen zu beschleunigen.
Verwendung der oben genannten Funktionen zur Implementierung des SHA-256-Kryptomoduls.
Integration des neuen SHA-256-Moduls in das Produkt des Kunden.
Einrichtung einer Cross-Compilation-Infrastruktur zur Erleichterung des Portierungsprozesses.
Implemented ARMv8 cryptographic extensions, improving the product’s performance.
Achieved a seamless transition of the client’s product to ARMv8, enabling the use of cheaper AMI instances without compromising on security or performance.
Implementierung kryptografischer ARMv8-Erweiterungen, die die Leistung des Produkts verbessern.
Nahtlose Umstellung des Kundenprodukts auf ARMv8, wodurch die Verwendung kostengünstigerer AMI-Instanzen ohne Abstriche bei der Sicherheit oder Leistung ermöglicht wurde.
Our team delivered an optimized ARMv8 port of the client’s security product, allowing them to shift workloads to more cost-effective AMI instances. This transition enabled significant cost savings for their customers while maintaining high levels of security and performance.
Unser Team lieferte eine optimierte ARMv8-Portierung des Sicherheitsprodukts des Kunden, die es ihm ermöglichte, Arbeitslasten auf kostengünstigere AMI-Instanzen zu verlagern. Diese Umstellung ermöglichte erhebliche Kosteneinsparungen für die Kunden bei gleichzeitiger Aufrechterhaltung eines hohen Sicherheits- und Leistungsniveaus.