Score:0

ไม่ทราบว่าจะแก้ปัญหานี้อย่างไรหรือจะเริ่มต้นอย่างไร การค้นหาศัตรูของเกมซ่อนและผูกมัด

ธง sa

ฉันมีปัญหานี้: ป้อนคำอธิบายรูปภาพที่นี่

ฉันยังมีปัญหานี้ในเวอร์ชัน python ที่นี่:

นำเข้า json
นำเข้า sys, os, itertools

sys.path.append(os.path.abspath(os.path.join('..')))
จากการนำเข้า playcrypt.tools *
จากการนำเข้า playcrypt.new_tools *
จากการนำเข้า playcrypt.primitives *

จาก playcrypt.games.game_bind นำเข้า GameBIND
จาก playcrypt.simulator.bind_sim นำเข้า BINDSim

จาก playcrypt.games.game_hide นำเข้า GameHIDE
จาก playcrypt.simulator.hide_sim นำเข้า HIDESim

def เพิ่ม (a, b):
    คืนค่า a+b
def MULT(a,b):
    กลับ a*b
def INT_DIV(a,N):
    กลับ (a//N, a%N)
def MOD (a, N):
    ส่งคืน %N
def EXT_GCD(a,N):
    ส่งคืน egcd(a,N)
def MOD_INV(a,N):
    ความละเอียด = modinv(a,N)
    ถ้า res == ไม่มี:
        เพิ่ม ValueError ("ไม่มีผกผัน")
    คืนความละเอียด
def MOD_EXP(a,n,N):
    ส่งคืนประสบการณ์ (a, n, N)


"""
ให้ p เป็นจำนวนเฉพาะของความยาวบิต k >= 8 โดยที่ (p - 1)/2 เป็นจำนวนเฉพาะด้วย ให้ ก,
h เป็นเครื่องกำเนิดสองตัวที่แตกต่างกันของกลุ่ม G = Z_p^* ให้ CS= (P, C, V) เป็น
รูปแบบความมุ่งมั่นที่มีอัลกอริทึมที่เป็นส่วนประกอบดังต่อไปนี้ โดยที่ข้อความ
M อยู่ใน Z_{p-1}:
"""

def P():
    ปี่ = (g, h)
    กลับปี

def C(pi, M):
    """
    :param pi: พารามิเตอร์สาธารณะ
    :param M: ข้อความที่จะส่ง องค์ประกอบของ Z_{p-1}
    :return: ส่งคืนค่าคอมมิชชันและคีย์ decommital
    """
    (g, h) = ปี่
    K = สุ่ม_Z_N(p-1)
    A = MOD_EXP(g, K, p)
    B = MOD_EXP(ชม., รอบ, หน้า)
    C_1 = MOD(A*B, หน้า)
    C_2 = MOD(M+K, หน้า-1)
    กลับ ((C_1, C_2), K)

def V(pi, C, M, K):
    """
    :param pi: พารามิเตอร์สาธารณะ
    :param C: ความมุ่งมั่น
    :param M: ข้อความที่จะตรวจสอบ
    :param K: คีย์ทศนิยม
    :return: ส่งคืน 1 หากการเปิดถูกต้องและ 0 มิฉะนั้น
    """
    (g, h) = ปี่
    (C_1, C_2) = ค
    ถ้าไม่ใช่ 0 <= K < p-1 หรือไม่ 0 <= M < p-1:
        กลับ 0
    A = MOD_EXP(g, K, p)
    B = MOD_EXP(ชม., รอบ, หน้า)
    C_1_prime = MOD(A*B, หน้า)
    C_2_prime = MOD(M+K, หน้า-1)
    ถ้า (C_1 == C_1_prime) และ (C_2 == C_2_prime):
        กลับ 1
    อื่น:
        กลับ 0

"""
1. ระบุ O(k^3)-time ฝ่ายตรงข้าม A1 ทำการสืบค้นหนึ่งรายการไปยัง LR oracle และ
ได้รับ Adv^{hide}_CS(A1) = 1
"""

def A1(lr, ปี่):
    """
    นี่คือศัตรูที่เป็นปัญหา
    ขอ ควรส่งคืน 0 หรือ 1

    :param lr: oracle ที่จัดทำโดย game HIDE
    :param pi: pi พารามิเตอร์สาธารณะ
    """
    ผ่าน


"""
2. ระบุ O(k)-time ฝ่ายตรงข้าม A2 เพื่อให้ Adv^{bind}_CS(A2) = 1
(คำแนะนำ: ค่าของ g^{(p-1)/2} mod p คืออะไร และเพราะเหตุใด)
"""

def A2(ปี่):
    """
    นี่คือศัตรูที่เป็นปัญหา
    ขอ ควรส่งคืนทูเพิล (C, M_0, M_1, K_0, K_1)

    :param pi: pi พารามิเตอร์สาธารณะ
    """
    กลับ ((0, 0), 0, 0, 0, 0)


ถ้า __name__ == '__main__':

    # ตัวอย่างพารามิเตอร์สุ่ม
    k = 12
    พิมพ์ ('สุ่มตัวอย่างพารามิเตอร์สุ่มของความยาวบิต k = %d' % k)
    p = Random.randint(2**(k - 1), 2**k)
    ในขณะที่ไม่ใช่ is_prime(p) หรือไม่ใช่ is_prime((p-1)//2):
        p = Random.randint(2**(k - 1), 2**k)
    g = สุ่ม_Z_N_star(หน้า)
    ขณะที่ (MOD_EXP(g, (p-1)//2, p) == 1) หรือ (MOD_EXP(g, 2, p) == 1):
        g = สุ่ม_Z_N_star(หน้า)
    ชั่วโมง = Random_Z_N_star(หน้า)
    ในขณะที่ (h == g) หรือ (MOD_EXP(h, (p-1)//2, p) == 1) หรือ (MOD_EXP(h, 2, p) == 1):
        ชั่วโมง = Random_Z_N_star(หน้า)
    พิมพ์ ('p = %d, g = %d, h = %d' % (p, g, h))

    game_hide = ซ่อนเกม(P, C)
    sim_hide = ซ่อนซิม (game_hide, A1)

    game_bind = GameBIND(P, V)
    sim_bind = BINDSim(game_bind, A2)

    print("ข้อได้เปรียบของศัตรู A1 นั้นประมาณได้" + str(sim_hide.compute_advantage()))
    พิมพ์("ข้อได้เปรียบของ A2 ของฝ่ายตรงข้ามคือประมาณ" + str(sim_bind.compute_advantage()))

หายเกลี้ยง เริ่มยังไงดี?

Daniel S avatar
ru flag
ลองเริ่มต้นด้วยตัวอย่างตัวเลข ตัวอย่างเช่น ให้ $p=563$, $g=2$, $h=5$ ตอนนี้สำหรับส่วนแรก สมมติว่าเรามีข้อความ $M_0=123$ และ $M_1=345$เราค้นหา **LR** oracle และรับ (335,306) คุณบอกได้ไหมว่าสอดคล้องกับ $M_0$ หรือ $M_1$ ยังไง?

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา