IP Library Granted Patent US 12,526,141
Granted Patent B1
US 12,526,141 · App. 17/722,614 · Granted Jan 13, 2026

Polynomial network coding

Inventor: Steve Shattil (Cheyenne, WY)
Assignee: Tybalt, LLC
H04L9/3026H04L9/3218
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,526,141
App. No.
17/722,614
Granted
Jan 13, 2026
Kind
B1
Abstract

Vector network coding, such as linear network coding, is used to compute a plurality of coded data parts from original data, wherein each coded data part is computed from a cryptographic hash function of a previous coded data part. A recipient of the coded data parts can compute the cryptographic hash functions of the coded data to reproduce a system of linear equations, which can be solved to recover the original data. A cryptographic key that employs a polynomial over a finite field can have polynomial coefficients that comprise a function of vector network coding coefficients.

Claims (43)

1 . A method for transmitting data from one or more mobile devices to one or more other mobile devices in a wireless network, comprising:

configuring a processor of the one or more mobile devices to employ vector network coding to compute a plurality of coded data parts from original data; wherein each of at least some of the plurality of coded data parts is computed from at least one previous coded data part of the plurality of coded data parts by applying a one-way function to the at least one previous coded data part for generating a set of vector network coding coefficients,

and using the set of vector network coding coefficients to linearly combine a plurality of original data parts to produce a next coded data part; and configuring the processor to provide for transmitting the at least one previous coded data part and the next coded data part to the one or more other mobile devices; and

wherein the one or more other mobile devices are configured to employ an inverse transform on the coded data to decode the original data.

2 . The method of claim 1 , further comprising:

configuring the processor to compute a first coded data part from the plurality of original data parts;

wherein the first coded data part is computed from at least one of a function of the original data parts, coded data from a previous operation, a cryptographic key, or a random key; and

configuring the processor to provide for distributing the first coded data part to the one or more receivers.

3 . The method of claim 1 , further comprising:

configuring the processor to compute an all-or-nothing transform (AONT) and generate a last coded data part therefrom; and

configuring the processor to provide for distributing the last coded data part to the one or more receivers.

4 . The method of claim 1 , wherein the one-way function is a cryptographic hash.

5 . The method of claim 1 , further comprising configuring the processor to perform an invertible randomizing operation on original data such that the plurality of original data parts are randomized original data parts.

6 . The method of claim 1 , further comprising configuring the processor to generate a cryptographic key that employs a polynomial over a finite field, wherein coefficients of the polynomial comprise a function of the set of vector network coding coefficients.

7 . The method of claim 1 , wherein the processor resides on an intermediate node, and configuring the processor to use the set of vector network coding coefficients to linearly combine the plurality of original data further comprises linearly combining incoming coded data parts to generate the next coded data part.

8 . An apparatus for transmitting data from one or more mobile devices to one or more other mobile devices in a wireless network, the apparatus comprising at least one processor; and at least one computer-readable memory in electronic communication with the at least one processor, and instructions stored in the at least one computer-readable memory, the instructions executable by the at least one processor to configure a processor of the one or more mobile devices to:

employ vector network coding to compute a plurality of coded data parts from original data; wherein each of at least some of the plurality of coded data parts is computed from at least one previous coded data part of the plurality of coded data parts by applying a one-way function to the at least one previous coded data part for generating a set of vector network coding coefficients, and to using the set of vector network coding coefficients to linearly combine a plurality of original data parts to produce a next coded data part; and provide for transmitting the at least one previous coded data part and the next coded data part parts to the one or more other mobile devices; and

wherein the one or more other mobile devices are configured to employ an inverse transform on the coded data to decode the original data.

9 . The apparatus of claim 8 , further comprising instructions executable by the at least one processor to:

compute a first coded data part from the plurality of original data parts;

wherein the first coded data part is computed from at least one of a function of the original data parts, coded data from a previous operation, a cryptographic key, or a random key; and

provide for distributing the first coded data part to the one or more receivers.

10 . The apparatus of claim 8 , further comprising instructions executable by the at least one processor to:

compute an all-or-nothing transform (AONT) and generate a last coded data part therefrom; and

provide for distributing the last coded data part to the one or more receivers.

11 . The apparatus of claim 8 , wherein the one-way function is a cryptographic hash.

12 . The apparatus of claim 8 , further comprising instructions executable by the at least one processor to perform an invertible randomizing operation on original data such that the plurality of original data parts are randomized original data parts.

13 . The apparatus of claim 8 , further comprising instructions executable by the at least one processor to generate a cryptographic key that employs a polynomial over a finite field, wherein coefficients of the polynomial comprise a function of the set of vector network coding coefficients.

14 . The apparatus of claim 8 , wherein the at least one processor resides on an intermediate node, and the instructions executable by the at least one processor to employ vector network coding provides for linearly combining incoming coded data parts to generate the plurality of coded data parts.

15 . A computer program product, comprising: a non-transitory computer-readable memory having computer-readable program code stored thereon, the computer-readable program code containing instructions executable by at least one processor to:

employ a plurality of vector network coding coefficients to compute a plurality of coded data parts from a plurality of original data parts; wherein each of at least some of the plurality of coded data parts is computed from at least one previous coded data part of the plurality of coded data parts by applying a one-way function to the at least one previous coded data part for generating a set of vector network coding coefficients and using the set of vector network coding coefficients to linearly combine a plurality of original data parts to produce a next coded data part;

provide for transmitting the plurality of coded data parts to the one or more mobile devices; and

and wherein the one or more mobile devices are configured to employ an inverse transform on the coded data to decode the original data.

16 . The computer program product of claim 15 , further comprising instructions executable by the at least one processor to:

compute a first coded data part from the plurality of original data parts;

wherein the first coded data part is computed from at least one of a function of the original data parts, coded data from a previous operation, a cryptographic key, or a random key; and

provide for distributing the first coded data part to at least one of the multiple network nodes.

17 . The computer program product of claim 15 , further comprising instructions executable by the at least one processor to:

compute an all-or-nothing transform (AONT) and generate a last coded data part therefrom; and

provide for distributing the last coded data part to at least one of the multiple network nodes.

18 . The computer program product of claim 15 , wherein the vector network coding comprises a one-way function performed on the previous one of the plurality of coded data parts to generate ones of the plurality of vector network coding coefficients for combining the plurality of original data parts to produce a next one of the plurality of coded data parts.

19 . The computer program product of claim 15 , further comprising instructions executable by the at least one processor to perform an invertible randomizing operation on the original data parts before configuring the processor to employ vector network coding.

20 . The computer program product of claim 15 , further comprising instructions executable by the at least one processor to generate a cryptographic key that employs a polynomial over a finite field, wherein coefficients of the polynomial comprise a function of the plurality of vector network coding coefficients.

Continuity (1)
Provisional Application 63176207 · Apr 16, 2021
References Cited (117)
US 7529198B2 · Jain · 2009 [cited by examiner]
US 7743253B2 · Lauter · 2010 [cited by examiner]
US 7965761B2 · Shattil · 2011 [cited by examiner]
US 8068426B2 · Sundararajan · 2011 [cited by examiner]
US 8451756B2 · Lucani et al. · 2013 [cited by applicant]
US 8516344B2 · Kim · 2013 [cited by examiner]
US 8553784B2 · Huang et al. · 2013 [cited by applicant]
US 8670390B2 · Shattil · 2014 [cited by examiner]
US 8711978B2 · Kim · 2014 [cited by examiner]
US 8780693B2 · Kim · 2014 [cited by examiner]
US 8942082B2 · Shattil · 2015 [cited by examiner]
US 8953612B2 · Liu · 2015 [cited by examiner]
US 8958309B2 · Kim · 2015 [cited by examiner]
US 9088351B2 · Liu · 2015 [cited by examiner]
US 9112916B2 · Summerson et al. · 2015 [cited by applicant]
US 9165013B2 · Medard et al. · 2015 [cited by applicant]
US 9185529B2 · Medard et al. · 2015 [cited by applicant]
US 9191371B2 · Chang · 2015 [cited by examiner]
US 9225471B2 · Shattil · 2015 [cited by examiner]
US 9270421B2 · Shattil · 2016 [cited by examiner]
US 9325805B2 · Shattil · 2016 [cited by examiner]
US 9402209B1 · Vivanco · 2016 [cited by examiner]
US 9439077B2 · Gupta · 2016 [cited by examiner]
US 9537759B2 · Calmon · 2017 [cited by examiner]
US 9602246B2 · Mendes Alves Da Costa · 2017 [cited by examiner]
US 9641615B1 · Robins · 2017 [cited by examiner]
US 9647800B2 · Lucani · 2017 [cited by examiner]
US 9722776B2 · Nguyen · 2017 [cited by examiner]
US 9749388B2 · Mahdaviani · 2017 [cited by examiner]
US 9768842B2 · Shattil · 2017 [cited by applicant]
US 9787614B2 · Heide et al. · 2017 [cited by applicant]
US 9819449B2 · Shattil · 2017 [cited by examiner]
US 9860022B2 · Krigslund et al. · 2018 [cited by applicant]
US 9941996B2 · Yang · 2018 [cited by examiner]
US 9954859B2 · Niset · 2018 [cited by examiner]
US 10014882B2 · Sen · 2018 [cited by examiner]
US 10034200B2 · Narasimha · 2018 [cited by examiner]
US 10069746B2 · Anderson et al. · 2018 [cited by applicant]
US 10237782B2 · Yang et al. · 2019 [cited by applicant]
US 10355720B2 · Shattil · 2019 [cited by examiner]
US 10366378B1 · Han · 2019 [cited by examiner]
US 10389568B1 · Shattil · 2019 [cited by examiner]
US 10425135B2 · Shattil · 2019 [cited by examiner]
US 10452621B2 · Medard · 2019 [cited by examiner]
US 10484171B2 · Hu · 2019 [cited by examiner]
US 10516617B2 · Anderson et al. · 2019 [cited by applicant]
US 10530574B2 · Shi · 2020 [cited by examiner]
US 11025312B2 · Shattil · 2021 [cited by applicant]
US 11075786B1 · Shattil · 2021 [cited by examiner]
US 11108705B2 · Fouli et al. · 2021 [cited by applicant]
US 11223508B1 · Shattil · 2022 [cited by applicant]
US 11297657B2 · Lahouti et al. · 2022 [cited by applicant]
US 11533127B1 · Yu · 2022 [cited by examiner]
US 11791914B2 · Cella · 2023 [cited by examiner]
US 20050152391A1 · Effros · 2005 [cited by examiner]
US 20060224760A1 · Yu · 2006 [cited by examiner]
US 20060235895A1 · Rodriguez · 2006 [cited by examiner]
US 20060282677A1 · Rodriguez · 2006 [cited by examiner]
US 20100260189A1 · Ansari · 2010 [cited by examiner]
US 20110051729A1 · Wei · 2011 [cited by examiner]
US 20110142141A1 · Huang · 2011 [cited by examiner]
US 20120096124A1 · Medard · 2012 [cited by examiner]
US 20120163588A1 · Kobayashi · 2012 [cited by examiner]
US 20120236763A1 · Lucani · 2012 [cited by examiner]
US 20130230058A1 · Summerson · 2013 [cited by examiner]
US 20130232397A1 · Summerson · 2013 [cited by examiner]
US 20140016469A1 · Ho · 2014 [cited by examiner]
US 20140036657A1 · Suter · 2014 [cited by examiner]
US 20140185797A1 · Yasuda · 2014 [cited by examiner]
US 20140269485A1 · Medard et al. · 2014 [cited by applicant]
US 20140269503A1 · Medard et al. · 2014 [cited by applicant]
US 20140269505A1 · Medard · 2014 [cited by examiner]
US 20140328342A1 · Berman · 2014 [cited by examiner]
US 20150146615A1 · Yu · 2015 [cited by examiner]
US 20150358118A1 · Krigslund · 2015 [cited by examiner]
US 20160134546A1 · Anderson · 2016 [cited by examiner]
US 20160154970A1 · Calmon · 2016 [cited by examiner]
US 20160182088A1 · Sipos · 2016 [cited by examiner]
US 20160191402A1 · Anderson · 2016 [cited by examiner]
US 20160359770A1 · Heide · 2016 [cited by examiner]
US 20170118674A1 · Narasimha · 2017 [cited by examiner]
US 20170127463A1 · Narasimha · 2017 [cited by examiner]
US 20170155514A1 · Schulz · 2017 [cited by examiner]
US 20170195914A1 · Yang · 2017 [cited by examiner]
US 20170317986A1 · Hu · 2017 [cited by examiner]
US 20180034630A1 · Rietman · 2018 [cited by examiner]
US 20180046815A9 · Calmon et al. · 2018 [cited by applicant]
US 20180074889A1 · Resch · 2018 [cited by examiner]
US 20180212764A1 · Shi · 2018 [cited by examiner]
US 20190045333A1 · Serbetci · 2019 [cited by examiner]
US 20190149320A1 · Keselman · 2019 [cited by examiner]
US 20190297649A1 · Lahouti · 2019 [cited by examiner]
US 20200028624A1 · Fouli · 2020 [cited by examiner]
US 20200028674A1 · Bao · 2020 [cited by examiner]
US 20200145201A1 · Shim · 2020 [cited by examiner]
US 20200351220A1 · Fouli · 2020 [cited by examiner]
US 20200382625A1 · Medard · 2020 [cited by examiner]
US 20210105342A1 · Ballif · 2021 [cited by examiner]
US 20220069987A1 · Medard · 2022 [cited by examiner]
US 10,673,758 B2, 06/2020, Shattil (withdrawn) [cited by examiner]
S. Dasgupta, et al.; “Design of a polynomial ring based symmetric homomorphic encryption scheme”; Perspectives in Science (2016) 8, 692-695. [cited by applicant]
D. Charles, et al.; “Signatures for Network Coding”; International Journal of Information and Coding Theory 2006(1): 25; Mar. 2006. [cited by applicant]
N. Cai, et al.; “Secure Network Code for Adaptive and Active Attacks with No-Randomness in Intermediate Nodes”; IEEE Transactions on Information Theory ( vol. 66, Issue: 3, Mar. 2020). [cited by applicant]
K. Chu, et al.; “Practical Random Linear Network Coding on GPUs”; International Conference on Research in Networking, 2009, pp. 573-585. [cited by applicant]
M.N. Krohn, et al.; “On-the-Fly Verification of Rateless Erasure Codes for Efficient Content Distribution”; IEEE Symposium on Security and Privacy, 2004. Proceedings. May 2004. [cited by applicant]
M. Adeli, et al.; “Secure Network Coding with Minimum Overhead Based on Hash Functions”; IEEE Comm Letters, vol. 13, No. 12. Dec. 2009. [cited by applicant]
A. Kirsch, et al.; “Hash-Based Techniques for High-Speed Packet Processing”; Algorithms for Next Generation Networks, 2010; 181-218. [cited by applicant]
R. Dougherty, et al.; “Insufficiency of Linear Coding in Network Information Flow”; IEEE Transactions on Information Theory, vol. 51, No. 8, Aug. 2005. [cited by applicant]
T. Ho and D.S. Lun; “Network Coding: An Introduction”; Cambridge University Press; 1st edition (Apr. 14, 2008). [cited by applicant]
S-Y.R. Li, et al.; “Linear Network Coding”; IEEE Transactions on Information Theory, vol. 49, No. 2, Feb. 2003. [cited by applicant]
Y. Liu and Y. Morgan; “Security against Passive Attacks on Network Coding System—A Survey”; Computer Networks (2018), doi: 10.1016/j.comnet.2018.03.013. [cited by applicant]
C. Gkantsidis, et al.; “Network Coding for Large Scale Content Distribution”; Proceedings IEEE 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Mar. 2005. [cited by applicant]
C. Fragouli and E. Soljanin; “Network Coding Applications”; Foundations and Trends in Networking, vol. 2, No. 2 (2007) 135-269. [cited by applicant]
J. Katz, B. Waters; “Compact Signatures for Network Coding”; International Association for Cryptologic Research http://eprint.iacr.org/2008/316, Oct. 2009. [cited by applicant]
E. Yilmaz, R. Knopp; “Hash-and-Forward Relaying for Two-Way Relay Channel”; 2011 IEEE International Symposium on Information Theory Proceedings; Jul. 31, 2011—Aug. 5, 2011. [cited by applicant]
Y. Liu and Y. Morgan; “Security Analysis of Subspace Network Coding”; Journal of Information Security, 2018, 9, 85-94. Jan. 23, 2018. [cited by applicant]
S. Katti, et al.; “XORs in The Air: Practical Wireless Network Coding”; IEEE/ACM Transactions on Networking Year: 2008 | vol. 16, Issue: 3. [cited by applicant]