IP Library Granted Patent US 12,657,033
Granted Patent B2
US 12,657,033 · App. 18/370,058 · Granted Jun 16, 2026

Techniques of encrypting BMC and BIOS firmware and data in flash memory using co-processor

Inventors: Samvinesh Christopher (Suwanee, GA); Anurag Bhatia (Sugar Hill, GA); Winston Thangapandian (Suwanee, GA)
Assignee: AMERICAN MEGATRENDS INTERNATIONAL, LLC
G06F9/4403G06F9/3877
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,657,033
App. No.
18/370,058
Granted
Jun 16, 2026
Kind
B2
Abstract

In an aspect of the disclosure, a method, a computer-readable medium, and an apparatus are provided. The apparatus is a BMC. The BMC obtains data to be written to a storage. A main processor of the BMC provides the data to a co-processor of the BMC. The co-processor encrypts the data into encrypted data. The co-processor stores the encrypted data to the storage.

Claims (33)

1 . A method of operation of a baseboard management controller (BMC), the method comprising:

after power on of the BMC, executing, by a main processor of the BMC, unencrypted co-processor initialization code from a storage to initialize a co-processor of the BMC, wherein the storage further stores BMC firmware code and data and host initialization component code and data, and wherein the unencrypted co-processor initialization code is stored unencrypted in the storage while at least a portion of the BMC firmware code and data and at least a portion of the host initialization component code and data are stored encrypted in the storage;

obtaining data to be written to the storage;

writing, by the main processor of the BMC, the data to a shared memory area accessible by both the main processor and the co-processor of the BMC;

calling, by the main processor through an API, the co-processor to handle the data in the shared memory area;

reading, by the co-processor, the data from the shared memory area;

encrypting, by the co-processor, the data from the shared memory area into encrypted data via a stream encryption engine executed by the co-processor utilizing a unique key derived from a unique identifier stored in a one time programmable (OTP) memory of a hardware component of the BMC, wherein the encrypting is performed in a format-preserving manner such that a size of the data equals a size of the encrypted data; and

storing, by the co-processor, the encrypted data to the storage at a target location such that the encrypted data occupies a same set of storage addresses in the storage as the data.

2 . The method of claim 1 , further comprising:

obtaining encrypted data from the storage;

decrypting, by the co-processor, the encrypted data from the storage into decrypted data; and

providing, by the co-processor, the decrypted data to the main processor.

3 . The method of claim 2 , wherein decrypting the encrypted data comprises decrypting the encrypted data via a stream decryption engine executed by the co-processor.

4 . The method of claim 1 , wherein the storage comprises a flash memory storing firmware code and data for the BMC and a host computer.

5 . A baseboard management controller (BMC), comprising:

a main processor;

a co-processor; and

a storage;

wherein the main processor is configured to:

after power on of the BMC, execute unencrypted co-processor initialization code from the storage to initialize the co-processor, wherein the storage further stores BMC firmware code and data and host initialization component code and data, and wherein the unencrypted co-processor initialization code is stored unencrypted in the storage while at least a portion of the BMC firmware code and data and at least a portion of the host initialization component code and data are stored encrypted in the storage;

obtain data to be written to the storage;

write the data to a shared memory area accessible by both the main processor and the co-processor;

call, through an API, the co-processor to handle the data in the shared memory area;

wherein the co-processor is configured to:

read the data from the shared memory area;

encrypt the data from the shared memory area into encrypted data via a stream encryption engine executed by the co-processor utilizing a unique key derived from a unique identifier stored in a one time programmable (OTP) memory of a hardware component of the BMC, wherein the encrypting is performed in a format-preserving manner such that a size of the data equals a size of the encrypted data; and

store the encrypted data to the storage at a target location such that the encrypted data occupies a same set of storage addresses in the storage as the data.

6 . The BMC of claim 5 , wherein the co-processor is further configured to:

obtain encrypted data from the storage;

decrypt the encrypted data from the storage into decrypted data; and

provide the decrypted data to the main processor.

7 . The BMC of claim 6 , wherein the co-processor is configured to decrypt the encrypted data via a stream decryption engine executed by the co-processor.

8 . The BMC of claim 5 , wherein the storage comprises a flash memory storing firmware code and data for the BMC and a host computer.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Oct 17, 2024
From: MIDCAP FINANCIAL TRUST
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 069205/0948 →
SECURITY INTEREST Recorded Apr 30, 2024
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT
Reel/Frame 067274/0834 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2023
From: CHRISTOPHER, SAMVINESH; BHATIA, ANURAG; THANGAPANDIAN, WINSTON
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 064953/0158 →
Continuity (1)
Related Publication 20250094176A1 · Mar 20, 2025
References Cited (47)
US 5029073A · Takaya · 1991 [cited by examiner]
US 6065027A · Cashman · 2000 [cited by examiner]
US 6839849B1 · Ugon · 2005 [cited by examiner]
US 8904507B2 · Maity · 2014 [cited by examiner]
US 10515218B2 · Ghetie et al. · 2019 [cited by applicant]
US 10747295B1 · Paaske · 2020 [cited by examiner]
US 10868743B2 · Slaight et al. · 2020 [cited by applicant]
US 10956157B1 · Kaplan · 2021 [cited by examiner]
US 11487621B1 · Montero · 2022 [cited by examiner]
US 11580225B2 · Luciani, Jr. · 2023 [cited by examiner]
US 20030120605A1 · Fontana · 2003 [cited by examiner]
US 20040068727A1 · Zilles · 2004 [cited by examiner]
US 20040196905A1 · Yamane · 2004 [cited by examiner]
US 20040255111A1 · Lim · 2004 [cited by examiner]
US 20040268107A1 · Zimmer · 2004 [cited by examiner]
US 20060053246A1 · Lee · 2006 [cited by examiner]
US 20070115709A1 · Shih · 2007 [cited by examiner]
US 20090006859A1 · Zimmer · 2009 [cited by examiner]
US 20090216998A1 · Machulsky · 2009 [cited by examiner]
US 20120079281A1 · Lowenstein · 2012 [cited by examiner]
US 20130088335A1 · Babu · 2013 [cited by examiner]
US 20130138934A1 · Lin · 2013 [cited by examiner]
US 20150026459A1 · Divakar · 2015 [cited by examiner]
US 20170147798A1 · Yi · 2017 [cited by examiner]
US 20180039552A1 · Moskowiz · 2018 [cited by examiner]
US 20180089435A1 · Zander · 2018 [cited by examiner]
US 20190173749A1 · Thomas · 2019 [cited by examiner]
US 20200104141A1 · Balakrishnan · 2020 [cited by examiner]
US 20200133712A1 · Rathineswaran · 2020 [cited by examiner]
US 20200134185A1 · Cho · 2020 [cited by examiner]
US 20210064734A1 · Chen · 2021 [cited by examiner]
US 20210216638A1 · Park · 2021 [cited by examiner]
US 20210326273A1 · Dodds · 2021 [cited by examiner]
US 20220066766A1 · Mysore Shantamurthy · 2022 [cited by examiner]
US 20220278855A1 · Jacquin · 2022 [cited by examiner]
US 20220311596A1 · Boesgaard · 2022 [cited by examiner]
US 20220398144A1 · Cho · 2022 [cited by examiner]
US 20230034526A1 · Cho · 2023 [cited by examiner]
US 20230119255A1 · Soubhi · 2023 [cited by examiner]
US 20230161658A1 · Tung · 2023 [cited by examiner]
US 20230237155A1 · Jacquin · 2023 [cited by examiner]
US 20230251866A1 · Lin · 2023 [cited by examiner]
US 20230409211A1 · Lin · 2023 [cited by examiner]
US 20240028538A1 · Kodama · 2024 [cited by examiner]
US 20240134989A1 · Veluthakkal · 2024 [cited by examiner]
US 20240232110A1 · Som · 2024 [cited by examiner]
US 20240303086A1 · Liu · 2024 [cited by examiner]