Private/Field/Invoke-SecretSharingFieldMultiplication.ps1

function Invoke-SecretSharingFieldMultiplication {
    <#
    .SYNOPSIS
        Multiplies two GF(256) field elements.
    .DESCRIPTION
        Uses the exponent/logarithm tables from Get-SecretSharingFieldTable: a * b =
        Exp[(Log[a] + Log[b]) mod 255] for nonzero operands, 0 otherwise.
    #>

    [CmdletBinding()]
    [OutputType([byte])]
    param(
        [Parameter(Mandatory)]
        [byte]$A,

        [Parameter(Mandatory)]
        [byte]$B
    )

    if ($A -eq 0 -or $B -eq 0) {
        return [byte]0
    }

    $table = Get-SecretSharingFieldTable
    $exponent = ($table.Log[$A] + $table.Log[$B]) % 255
    return [byte]$table.Exp[$exponent]
}